【计算机硬件系统设计(华科)

您所在的位置:网站首页 4位先行进位电路设计 【计算机硬件系统设计(华科)

【计算机硬件系统设计(华科)

2023-10-02 23:24| 来源: 网络整理| 查看: 265

计算机硬件系统设计(华科)——运算器设计(Logisim实现) 运算器的设计与实现前言运算器框架8位可控加减法器4位先行进位741824位快速加法器16位快速加法器32位快速加法器5位阵列乘法器6位补码阵列乘法器5位无符号乘法流水线原码一位乘法器补码一位乘法器原码加减交替除法器算术逻辑运算单元ALU总结

运算器的设计与实现 前言

文章主要介绍由华中科技大学开设的MOOC《计算机硬件系统设计》中运算器设计的课程设计具体实现思路与方式。设计过程中可能不尽完善,希望可以同各位读者交流共同学习。

运算器框架

运算器是计算机中的重要部件,负责算术运算及逻辑运算,本实验中主要设计实现以下电路(功能):

8位可控加减法器 ;4位先行进位74182电路 ;4位快速加法器16位快速加法器 ;32位快速加法器;5位阵列乘法器;6位补码阵列乘法器;5位无符号乘法流水线;原码一位乘法器;补码一位乘法器;原码加减交替除法器;算数逻辑运算单元ALU;

在这里插入图片描述

8位可控加减法器

8位可控加减法器主要使用“全加器”实现,该处不再赘述全加器的电路逻辑。两数据对应各位依次相加由低位向高位传递进位信号,同本位相加实现加法运算。最高位产生进位则说明结果溢出。输入引脚区Sub信号为控制信号,低电平为加法,高电平为减法,以实现控制作用。

计算机无法直接进行减法运算,故引入补码概念。至此计算机中可将加减法看作一类运算。

A + B = C A - B = A + (-B) = C

溢出判断:关于无符号数溢出判断较为容易,即最高位产生进位时运算结果溢出,故 Cout = 1 为溢出。而对有符号数溢出判断时则有一定难度,就结果而已,其溢出结果可通过符号位与最高位共同判断。

S符号位 ⊕ \oplus ⊕ Z最高位 = 1 为溢出 S符号位 ⊕ \oplus ⊕ Z最高位 = 0 无溢出

当机器数采用补码,[ A - B ]补= [ A ] + [ -B ]补

[ -X ]补为求补运算,即将[X]补各位求反再加一 注意:Logisim中运算默认为补码运算,即输入原码,运算过程将自动转换为补码,最终结果将再次转换为原码输出。故设计者无需进行补码转换工作

下图为8位可控加减法器电路图: 在这里插入图片描述

4位先行进位74182

全加器虽然弥补了半加器无法实现多位相加的缺陷,可从前面的实验不难看出,高位进行运算时必须等待低位的进位信号,导致延迟的增加。

而当机器数数位固定时,各位的进位信号可通过更复杂的设计直接得到,无需等待低位给出进位信号,因此出现了先行进位电路,又称超前进位加法器( Carry Lookahead Adder )。 由全加器可知:

CI+1 = Ai · Bi + Ai · Ci + Bi · Ci = Ai · Bi + ( Ai + Bi ) · Ci 设: 生成信号(Generate):Ai · Bi 传递信号(Propagate):Ai + Bi 则:CI+1 = GI + Pi · CI

附电路逻辑表达式:

P = P4 P3 P2 P1 G = P4 P3 P2 G1 + P4 P3 G2 + P4 G3 + G4 C1 = P1 Cin + G1 C2 = P2 P1 Cin + P2 G1 + G2 C3 = P3 P2 P1 Cin + P3 P2 G1 + P3 G2 + G3 C4 = P4 P3 P2 P1 Cin + P4 P3 P2 G1 + P4 P3 G2 + P4 G3 + G4

4位先行进位74182电路如图所示:

在这里插入图片描述

4位快速加法器

通过使用74182电路实现快速加法器,如图:

在这里插入图片描述

16位快速加法器

实现过程不再赘述,如图:

在这里插入图片描述

32位快速加法器

设计原理同其他快速加法器,如图:

在这里插入图片描述

5位阵列乘法器

乘法为高阶的加法,因此可以将乘法分解为多步加法。

a 3 a 2 a 1 a 0 × b 3 b 2 b 1 b 0 a 3 b 0 a 2 b 0 a 1 b 0 a 0 b 0 a 3 b 1 a 2 b 1 a 1 b 1 a 0 b 1 a 3 b 3 a 2 b 2 a 1 b 2 a 0 b 2 a 3 b 3 a 2 b 3 a 1 b 3 a 0 b 3 S 7 S 6 S 5 S 4 S 3 S 2 S 1 S 0 \begin{matrix} &&&&a_3 & a_2 &a_1 & a_0 \\ \times& &&&b_3 & b_2 &b_1 & b_0\\ \hline &&&& a_3b_0 & a_2b_0 &a_1b_0 & a_0b_0\\ &&&a_3b_1 & a_2b_1 &a_1b_1 & a_0b_1 \\ &&a_3b_3 & a_2b_2 &a_1b_2 & a_0b_2\\ & a_3b_3 & a_2b_3 &a_1b_3 & a_0b_3\\ \hline S_7 &S_6 &S_5 &S_4 &S_3 &S_2 &S_1 &S_0 \end{matrix} ×S7​​a3​b3​S6​​a3​b3​a2​b3​S5​​a3​b1​a2​b2​a1​b3​S4​​a3​b3​a3​b0​a2​b1​a1​b2​a0​b3​S3​​a2​b2​a2​b0​a1​b1​a0​b2​S2​​a1​b1​a1​b0​a0​b1​S1​​a0​b0​a0​b0​S0​​​

关于电路延迟这里不再讨论,附电路图: 在这里插入图片描述

6位补码阵列乘法器

6位补码阵列乘法器,基本原理同5位阵列乘法器:符号位单独运算,由符号位选择输出结果,低五位运算经过数码转换按照5位阵列乘法器运算获得结果。电路图如下:

在这里插入图片描述

5位无符号乘法流水线

注:后续设计不再赘述细节。 在这里插入图片描述

原码一位乘法器

在这里插入图片描述

补码一位乘法器

在这里插入图片描述

原码加减交替除法器

在这里插入图片描述

算术逻辑运算单元ALU

在这里插入图片描述

总结

以上为运算器设计全部内容,设计完成后可通过实验包内提供的验证电路验证电路功能正确以及是否可以稳定工作。设计过程不尽完善,希望给位读者可以给予宝贵建议,相互学习,使得实验更加完善。如有问题欢迎提问。后续将继续更新相继实验。

注:请读者注意实验时效性,如后续课程实验更新,内容不尽相同望本设计可提供相关参考与建议。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3