【头歌·计组·自己动手画CPU】二、运算器设计(讲解版) 【计算机硬件系统设计】

简介: 【头歌·计组·自己动手画CPU】二、运算器设计(讲解版) 【计算机硬件系统设计】

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

由于原理是一致的,为了不做多余的重复劳动,下面主要是通过搜罗网上的资料来讲述的,这里都会贴上别人的链接

新手推荐博客:Logisim常用组件库介绍(很适合新手观看)-CSDN博客

加法器实现

第1关:8位可控加减法电路设计

推荐视频: 【计组】多位串行加法器实现原理_哔哩哔哩_bilibili

1. 推荐博客:一位全加器的实现
(一)半加器
  1. 半加器的定义
    半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。
  2. 半加器的真值表
    A,B表示二进制数,C表示半加进位,S表示半加和
  3. 输出表达式
  4. 逻辑电路图
(二)1位全加器
  1. 1位全加器的真值表
    Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和

| Ain | Bin | Cin | Cout | Sum |

| — | — | — | — | — |

| 0 | 0 | 0 | 0 | 0 |

| 0 | 0 | 1 | 0 | 1 |

| 0 | 1 | 0 | 0 | 1 |

| 0 | 1 | 1 | 1 | 0 |

| 1 | 0 | 0 | 0 | 1 |

| 1 | 0 | 1 | 1 | 0 |

| 1 | 1 | 0 | 1 | 0 |

| 1 | 1 | 1 | 1 | 1 |

  1. 输出表达式

  2. 逻辑图

需要注意引脚的含义

2. 推荐博客:本实验具体实现原理

这里我认为他已经写的很清楚了,所以就大概讲一下。

logisim平台已经给了全加器芯片,第一个要解决的问题就是如何利用全加器进行减法运算。两个数进行减法运算可以看被减数加负的减数,因此要将y转换成(-y)补之后再进行加法运算:符号位转换成1,数值位按位取反再加1。由于减法运算时sub为1,因此可以将y的各位与sub异或,同时sub作为最低为全加器的低位进位输入,以此实现上述功能。

第二个要解决的问题是溢出的判断:两个数的加减法运算可以分为以下四种情况:正+正,正+负,负+正,负+负,而溢出仅会在正+正与负+负时有可能发生。

m表示最高数值位进位,n表示符号位进位,首先讨论一定不会发生溢出的两种情况(正+负与负+正):可以总结为10+01或10+11两种情况(高位为符号位,低位为最高数值位),可能的结果有两种:n=0,m=0和n=1,m=1。此时n异或m=0。

再讨论可能会发生溢出的两种情况。

正+正:可能的情况可以概括为01+01,01+00,00+00,其中第一种情况会发生溢出(n=0,m=1,n异或m=1),后两种情况不会发生溢出(n=0,m=0,n异或m=0).

负+负:两个负数相加结果应为负数,结果符号位应为1,当符号位为0时发生溢出,可能的情况可概括为10+10,10+11,11+11,其中前两种情况的结果符号位为0,发生溢出**(n=1,m=0,n异或m=1),第三种情况符号位为1,没有发生溢出(n=1,m=1,n异或m=0)。

综合以上讨论,可以发现当符号位进位和最高位进位异或结果为1时发生溢出**,异或结果为0时没有发生溢出。由此就得到了补码运算判断溢出的方法。

3 接线图

第2关:CLA182四位先行进位电路设计

我讲的没老师讲的好,咱们直接看视频吧。

原理:推荐视频

接线图

第3关:4位快速加法器设计

原理之前讲了,类似

第4关:16位快速加法器设计

第5关:32位快速加法器设计

乘法器实现

原理老师上课讲过,这里有课件供大家复习查看,不再赘述了。

视频:计算机组成原理期末大题使用原码阵列乘法器和补码阵列乘法器分别计算x*y_哔哩哔哩_bilibili

第6关:5位无符号阵列乘法器设计

阵列乘法器由多个加法器和乘法器组成,其工作原理是将待乘数和乘数分别按位拆分成多个小段,在阵列乘法器中进行乘法运算和累加,并最终得出乘积。

阵列乘法器将待乘数和乘数逐位相乘,并将结果送入加法器进行累加。在每个时钟周期中,阵列乘法器会对每个乘数位进行一次部分积计算,直到所有位都完成运算。部分积计算完成后,阵列乘法器会将结果根据位数进行排序和加和,以得到最终乘积。

阵列乘法器的优点是速度快、复杂度低、结构简单等。它广泛应用于数字信号处理、数值计算、图像处理等领域中,是实现大规模数据处理的重要工具。

第7关:6位有符号补码阵列乘法器

第8关:乘法流水线设计

第9关:原码一位乘法器设计

第10关:补码一位乘法器设计

第11关:MIPS运算器设计

相关文章
|
1月前
|
存储 缓存
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
55 3
|
6月前
|
存储
计算机组成原理(7)----CPU内部单总线数据通路
计算机组成原理(7)----CPU内部单总线数据通路
373 0
|
6月前
|
存储
计算机组成原理(5)----CPU的基本结构
计算机组成原理(5)----CPU的基本结构
174 0
|
3月前
|
存储 缓存 数据处理
计算机临时存储CPU运算数据
【8月更文挑战第4天】
65 8
|
3月前
|
存储 固态存储 测试技术
|
4月前
|
编译器 芯片
计算机中CPU 架构
【7月更文挑战第27天】
66 2
|
4月前
|
存储 缓存 数据处理
计算机中 中央处理器 (CPU)
【7月更文挑战第27天】
59 2
|
4月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
9天前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
|
18天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2