计算机组成原理之运算器

  • 实验目的:

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

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

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

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

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

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

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

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

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

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

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

  • 实验设备:

Logisim 平台、头歌实践平台

  • 实验原理:

1、8位可控加减法器

      将8个一位全加法器FA的进位链串联可得到8位加法器,由于补码符号位也可以参与运算,所以本电路既可以用于有符号运算,也可以用于无符号运算,但是二者在溢出检测上还是有一定区别,电路中OF的判定以有符号数加法运算是否溢出为标准。对于溢出检测,是根据运算过程中,最高数据位的进位和符号位的进位是否一致进行检测。当Sub=0时,执行减法操作,0和二进制数异或运算的到其本身,然后通过一位全加法器FA执行加法运算;当Sub=1时,执行减法操作,1和二进制数异或运算相当于对二进制数进行按位取反操作,然后将Sub传入FA进行+1操作,这样子就得到了该二进制的补码,然后运算即可。

   2、4位先行进位74182

直接使用Logisim平台中的分析组合电路:

C1 = X1Y1+(X1⊕Y1)C0=G1+P1C0

C2 = X2Y2+(X2⊕Y2)C1=G2+P2C1=G2+P2(G1+P1C0)=G2+P2G1+P2P1C0

C3 = X3Y3+(X3⊕Y3)C2=G3+P3G2+P3P2G1+P3P2P1C0

C4 = X4Y4+(X4⊕Y4)C3=G4+P4C3=G4+P4(G3+P3G2+P3P2G1+P3P2P1C0)

= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0

G* = G4+P4G3+P4P3G2+P4P3P2G1(成组进位生成函数)

P* = P4P3P2P1(成组进位传递函数)

   3、4位快速加法器:

S4 = X4⊕Y4⊕C3 = P4⊕C3
S3 = X3⊕Y3⊕C2 = P3⊕C2
S2 = X2⊕Y2⊕C1 = P2⊕C1
S1 = X1⊕Y1⊕C0 = P1⊕C0
Gi = XiYi Pi=Xi⊕Yi

   然后进行电路连接即可

   4、16位快速加法器:

   16位快速加法器,就是对于4位加法器进行扩展,利用已经写好的4位快速加法器上端的接口C1、C2、C3、C4连接到16位快速加法器上面的进位输入端。

   5、32位快速加法器:

   同理,依旧是利用已经写好的16位快速加法器进行扩展,与16位快速加法器同理

   6、5位阵列乘法器

  

   7、6位补码阵列乘法器:

  

   8、5位无符号乘法流水线:

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

   9、原码一位乘法器设计:

乘积的符号位由两数的符号按异或运算得到,而乘积的数值部分则是两个正数相乘之积。

核心算法:{ ∑ , Y } = { ∑ + Y  |X|  , Y  } / 2

   10、补码一位乘法器设计:

单独用一个异或门产生乘积的符号位。故自然提出能否让符号数字化后也参加乘法运算,补码乘法就可以实现符号位直接参加运算。

核心算法:{ ∑,Y } = { ∑ +(Y      -  Y  )[X]   , Y } / 2

   11、MIPS运算器设计:

需要一个CLA74182作为来并行计算进位值,然后只需要2个十六位快速加法器实现16位数的运算即可。用多路选择器根据S的值进行对应输出。

溢出检测方法:根据操作数和运算结果的符号位是否一致来进行检测

设Xf,Yf分别为两个操作数的符号位,Sf为结果的符号位,V为溢出标志位,V=1时即表示溢出。这个逻辑表明,有符号加法运算溢出的条件是:两个操作数都是正数结果却为负数,或者两个运算数都是负数结果却是正数

  • 实验内容与完成情况:

1、8位可控加减法器

在 Logisim 模拟器中打开 alu.circ 文件,在对应子电路中利用已经封装好的全加器设计8位串行可控加减法电路,其电路引脚定义如图所示,用户可以直接使用在电路中使用对应的隧道标签,其中 X,Y 为两输入数,Sub 为加减控制信号,S 为运算结果输出,Cout 为进位输出,OF 为有符号运算溢出位。

2、4位先行进位7418

在 Logisim 中打开 alu.circ 文件,按照图中定义的输入输出引脚,在对应子电路中实现可级联的4位先行进位电路。其中 Gi,Pi 为进位生成函数和传递函数,Cin 为进位输入,C1~C4 为进位输出,G,P 为成组进位生成函数和成组进位传递函数。

3、4位快速加法器

利用前一步设计好的四位先行进位电路构造四位快速加法器,其引脚定义如图所示,其中 X,Y 为四位相加数,Cin 为进位输入,S 为和数输出,Cout 为进位输出,G,P 为 4 位成组进位生成函数和成组进位传递函数。

4、16位快速加法器

在 Logisim 中打开 alu.circ 文件,在对应的子电路中利用四位先行进位电路和四位快速加法器构造十六位组间先行进位,组内先行进位快速加法器,并验证其功能是否正常,快速加法器引脚定义如图所示。其中 X,Y 为16位相加数,Cin 为进位输入,S 为和数输出,Cout 为进位输出,G,P 为16位成组进位生成函数和成组进位传递函数。

5、32位快速加法器

利用16位快速加法器以及先行进位电路构建32位快速加法器,并探讨其时间延迟。

可能方案:(1)2个16位加法器直接串联,C16 信号采用下层的进位输出;(2))2个16位加法器直接串联,C16 进位输入采用上层的进位输出;(3)在16位快速加法器的基础上再增加一级组间先行进位电路,类似64位快速加法器的方法;分别分析3种不同方案可能的总延迟,选择速度最快的方案实现32位快速加法器,并分析其时间延迟,其引脚如图所示。其中 X,Y 为32位相加数,Cin 为进位输入,S 为和数输出,Cout 为进位输出,Overflow 为有符号加法运算溢出信号。

6、5位阵列乘法器

在 Logisim 中打开 alu.circ 文件,在5位阵列乘法器中实现斜向进位的阵列乘法器,该电路引脚定义如图所示,其中 X,Y 为5位被乘数和乘数,P 为乘积输出,阵列乘法所需的25按位与的乘积项已经通过辅助电路生成,如图2.21所示,所有乘积项均通过隧道标签给出,用户只需要在已给出的电路框架中进行简单连线即可完成5位阵列乘法器。

7、6位补码阵列乘法器

在 Logisim 中打开 alu.circ 文件,在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器,实验框架如图所示:

8、5位无符号乘法流水线

在 Logisim 中打开 alu.circ 文件,在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器,实验框架如图所示:

9、原码一位乘法器

在 alu.circ 文件中的原码一位乘法器子电路中,增加控制电路和数据通路,使得该电路能自动完成8位无符号数的一位乘法运算。再设置引脚初始值,然后驱动时钟自动仿真,电路可自动完成运算。运算结束,结果传输到输出引脚。运算结束时,电路应该自动停止。

10、补码一位乘法器

在 alu.circ 文件中的补码一位乘法器子电路中,增加控制电路和数据通路,使得该电路能自动完成8位补码一位乘法运算。再设置引脚初始值,然后驱动时钟自动仿真,电路可自动完成运算。运算结束,结果传输到输出引脚。运算结束时,电路应该自动停止。

11、MIPS运算器设计

利用前面实验封装好的32位加法器以及 Logisim 平台中现有运算部件,构建一个32位算术逻辑运算单元(禁用 Logisim 系统自带的加法器,减法器),可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算,支持常用程序状态标志(有符号溢出 OF 、无符号溢出 UOF ,结果相等 Equal ),ALU 功能以及输入输出引脚见后表,在主电路中详细测试自己封装的 ALU ,并分析该运算器的优缺点。

  • 出现的问题及解决方案(列出遇到的问题和解决办法,列出没有解决的问题)

     问题:在实验当中经常会遇到位宽不匹配的问题

         解决办法:需要一条一条的去确认每一条的位宽,这样才能让器件运行

        

  • 实验小结。

8位可控加减法器用到了上学期学的可控加减法器设计思路,不同的是加了溢出检测,最高位与次高位的进位是否一致检测溢出,实现8位只需级联8个即可;4位先行74182主要是为了解决串行进位依赖的问题,所以用并行,只需要输入数据和C0的值可并行算出,不需等待前一位结果。4位快速加法器是基于CLA74182的基础上做一定改进即可,将输入的值与各个进位产生函数与进位生成函数联系起来,从而得到4位快速加法器。同样的,实验四的16位快速加法器需要实验三的四位快速加法器级联而得,在最后的四位快速加法器中的进位输出与74182上的进位输出口等价。32位MIPS需要了解移位器、乘除法器、比较器、多路选择器的运用,需注意的是要根据操作数和运算结果的符号位是否一致来进行检测溢出。通过实验学到了更多知识,对溢出知识、先行进位、多路选择器也有了更深的认识。也学到画电路图的时候需要细致,一些小的地方也会造成严重错误。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值