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

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

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

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

一、课程设计目的

从可控加减法单元,先行进位电路,四位快速加法器逐步构建 16 位、32 位快速加法器。还可以设计阵列乘法器,乘法流水线,实现原码一位乘法器,补码一位乘法器、运算器等计算机组成原理教材上的核心内容。

二、课程设计内容

  1. 8位可控加减法电路设计
  1. 实验目的

掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉 Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。

  1. CLA182四位先行进位电路设计
  1. 实验目的

掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。

  1. 4位快速加法器设计
  1. 实验目的

掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。

  1. 16位快速加法器设计
  1. 实验目的

理解成组进位产生函数,成组进位传递函数的概念,熟悉Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。

  1. 32位快速加法器设计
  1. 实验目的

理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。

  1. 5位无符号阵列乘法器设计
  1. 实验目的

掌握阵列乘法器的实现原理,能够分析阵列乘法器的性能,能在 Logisim 中绘制阵列乘法器电路。

  1. 6位有符号补码阵列乘法器
  1. 实验目的

掌握补码阵列乘法器的实现原理。

  1. 乘法流水线设计
  1. 实验目的

掌握运算流水线基本概念,理解将复杂运算步骤细分成子过程的思想,能够实现简单的乘法运算流水线。

  1. 原码一位乘法器设计
  1. 实验目的

掌握原码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个 8*8位的无符号数乘法器。

  1. 补码一位乘法器设计
  1. 实验目的

掌握补码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个8*8 位的补码 Booth一位乘法器。

  1. MIPS运算器设计
  1. 实验目的

理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的32位加法器、 Logisim 中的运算组件构造指定规格的 ALU 单元。

三、课程设计步骤

  1. 8位可控加减法电路设计
  1. 原理

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时没有发生溢出。由此就得到了补码运算判断溢出的方法。

  1. 接线图

  1. CLA182四位先行进位电路设计
  1. 原理

先行进位的关键在于提前产生各位的进位输入,使得各位的加法运算能并行起来从而提高加法器运算速度。

在当机器数数位是确定的时候,我们可以用一种复制的计算算出每一位的进位,无需等待低位给出进位信号,因此出现了先行进位电路。

生成信号(Generate):Gi = Ai·Bi

传递信号(Propagate):Pi =Ai + Bi

电路逻辑表达式:

  1. 接线图

  1. 4位快速加法器设计
  1. 原理

4位快速加法器是一种用于对两个4位二进制数进行加法运算的电路,它能够在一个时钟周期内完成加法运算。其设计原理主要基于全加器和级联进位的思想。

将四个全加器级联连接起来,每个全加器的输入分别与相应的被加数和加数位相连,同时接收来自前一位的进位。这样可以实现4位二进制数的加法运算。

  1. 接线图

  1. 16位快速加法器设计
  1. 原理

和上面类似,只是把4个4位快速加法器连接起来。

  1. 接线图

  1. 32位快速加法器设计
  1. 原理

和上面类似,只是把8个4位快速加法器连接起来。

  1. 接线图

  1. 5位无符号阵列乘法器设计
  1. 原理

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

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

运算方式如下:

  1. 接线图

  1. 6位有符号补码阵列乘法器
  1. 原理

有符号补码的乘法可以转化成无符号的原码进行计算,在最后取出符号异或即可确认符号,然后使用之前的5位无符号阵列乘法器实现6位有符号补码阵列乘法器。

  1. 接线图

  1. 乘法流水线设计
  1. 原理

在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器。

运算过程分为4步

  • E = Y0X + Y1X*2
  • E += Y2X*4
  • E += Y3X*8
  • E += Y4X*16
  • 注意:这其中需要使用加法器来实现,*2可以使用逻辑左移来实现。
  1. 接线图

  1. 原码一位乘法器设计
  1. 原理
  1. 乘数依次与被乘数的每一位进行相乘,然后将结果与部分积进行累加。
  2. 由于乘数的最低位在每次运算后不再需要,可以通过右移操作丢弃最低位。
  3. 在累加过程中,部分积需要向右移动一位,以实现对齐操作。
  4. 丢弃的最低位可以存储在乘数寄存器的最高位,这样每次右移丢弃的位数都会出现在最前面。在经过8次运算后,第一次丢弃的位恰好到达最低位位置。
  5. 在乘法部分,如果Yi的值为0,则结果为0;如果Yi的值为1,则结果为X。
  6. 可以使用数据选择器来实现乘法运算。
  7. 控制运算次数,在第0次运算时将Y载入乘数寄存器,在第8次运算后停止运算。
  1. 接线图

  1. 补码一位乘法器设计
  1. 原理
  1. 每次累加的结果由Yi和Yi+1的比较决定:
  • 当Yi > Yi+1时,累加X的补码。
  • 当Yi < Yi+1时,累加X。
  • 当Yi = Yi+1时,累加0。
  1. 与原码一位乘法器类似,补码一位乘法器也需要对部分积和乘数进行右移操作。
  2. 不同之处在于补码一位乘法器多了一位Yn+1(表示乘数的最高位),因此需要将Yn+1纳入右移操作中。
  1. 其余的实现步骤与原码一位乘法器相同。补码一位乘法器与原码一位乘法器在累加阶段的处理方式有所不同,这是由补码表示法的特性决定的。
  1. 接线图

  1. MIPS运算器设计
  1. 原理

该实验是对各种运算的集成,逻辑上简单实现移位、逻辑运算,加减乘除等运算。

  1. 接线图

四、课程设计总结

本课程设计旨在逐步构建16位、32位快速加法器,并设计阵列乘法器、乘法流水线、原码一位乘法器、补码一位乘法器、MIPS运算器等计算机组成原理核心内容。通过Logisim平台进行电路设计,使我们能够掌握电路设计的原理和方法,并对计算机组成原理有更深入的理解。

具体的课程设计内容包括从8位可控加减法电路设计、CLA182四位先行进位电路设计、4位快速加法器设计、16位、32位快速加法器设计,到5位无符号阵列乘法器设计、6位有符号补码阵列乘法器、乘法流水线设计、原码一位乘法器设计、补码一位乘法器设计、MIPS运算器设计等。每个实验都有明确的实验目的和原理,以及相应的接线图和逻辑表达式,通过逐步实现各种电路的设计,使我们能够逐步掌握和理解计算机组成原理中的关键概念和技术。

通过这样的课程设计,使我们将能够对计算机组成原理中的加法器、乘法器、运算流水线等核心内容有深入的理解,并通过实际操作加深对理论知识的理解和掌握,为日后的学习和工作打下坚实的基础。

相关文章
|
2月前
|
存储 缓存
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
92 3
|
7月前
|
存储
计算机组成原理(7)----CPU内部单总线数据通路
计算机组成原理(7)----CPU内部单总线数据通路
497 0
|
7月前
|
存储
计算机组成原理(5)----CPU的基本结构
计算机组成原理(5)----CPU的基本结构
212 0
|
4月前
|
存储 缓存 数据处理
计算机临时存储CPU运算数据
【8月更文挑战第4天】
86 8
|
4月前
|
存储 固态存储 测试技术
|
5月前
|
编译器 芯片
计算机中CPU 架构
【7月更文挑战第27天】
80 2
|
5月前
|
存储 缓存 数据处理
计算机中 中央处理器 (CPU)
【7月更文挑战第27天】
75 2
|
5月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
22天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
54 7
|
1月前
|
弹性计算 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:
204 1