计算机组成原理——运算器实验

提示:本文章采用proteus实现


前言

针对proteus的用法在这里不过多赘述,网上有很多教程可以学习。

一、实验项目要求

  1. 熟悉计算机组成原理仿真软件proteus,利用元器件制作并绘画出电路图,设计并验证4位算数逻辑单元的功能,通过分析4位字长计算机运算器算数和逻辑运算的逻辑表达式,实现4位字长计算机运算器算数和逻辑运算的电路图,并验证所设计电路图的功能。

二、理论分析

       

本次实验将会分别实现加法,减法,和逻辑运算,分别采用74LS283和74LS181芯片来完成。根据不同的运算类型,分别以A与B来表示输入,C表示进位,F表示输出。

加减法运算:

      两者都采用补码,符号位一同参与运算,无论加减法,都会转变为加法来运算,[A+B]补=[A]补+[B]补,[A-B]补=[A]补+[-B]补,其中[-B]补=[B]补连同符号位取反加一。

         1.加法,由分析一位全加器逻辑关系:

           Fi=Ai⊕Bi⊕Ci-1

           Ci=AiBi+BiCi+(Ai⊕Bi)&Cn-1

         可以得到如下逻辑公式:

          Ci =Ai&Bi + (Ai|Bi)&Ci-1;

          Fi=Ai⊕Bi⊕Ci-1;

       2.减法,[A-B]补=[A]补+[-B]补,其中[-B]补=[B]补连同符号位取反加一。若C为1,A-B-C=A+B反+0,如果C为0则A-B-C=A+B反+1。

       3.逻辑与, Qx = Ax&Bx;

       4.逻辑或, Qx = Ax|Bx;

       5.逻辑非, Qx = !A;

       6.逻辑异或, Qx = Ax⊕Bx;

       7.针对74LS181中不同的功能,将参照表中的内容进行:

三、实现方法

首先,打开proteus软件,在软件的左上角点击“p”,就可以在器件选择界面中挑选我们需要的元器件,然后就可以在操作界面中绘制电路图。先右击选择自己需要的器件,将其摆放在合适的位置,在这里我们会用到的器件有:74LS283,74LS181,DIPSWC-8,RESPACK-8,LED,7SEG-BCD,NOT,OR,AND,XOR。

其次,先做加法运算器,连接时要注意高位与低位的不同,不要连接错误了,还要注意放置接地(GROUND)和电源(POWER),来补充电路的短缺,再连接完成后,就可以点击左下角开始的图案进行调试。

拨动开关,off(红点)代表1,on(蓝点)代表0,注意不要读错高低位,将开关拨到你想要的数字就可以了,然后观察7SEG-BCD上的数字是不是你计算出来的数字,多做几组加深理解。

最后,实现完加法后,减法就是在加法的基础上增加NOT元器件,并测试,然后便是与或非异或,需要两个输入,用led灯的亮灭展示结果,拨动开关并观察。在运用74LS181时应参照功能表来进行测试,这样会更加明确。

四、实验结果分析

在proteus中模拟电路,设计实现了加法,减法与逻辑运算单元,并对该电路图进行运算仿真,得到如下实验结果(分别是74LS283和74LS181):

以下是采用74LS283的

加法运算器:

如图中的实例:0010+0000=0010

减法运算器:

如图中的实例:0011-0001=0010

逻辑运算:与,或,非,异或

如图中的实例:以led灯显示结果。

0∧1=0(灯灭)

0∨1=1(灯亮)

0⊕1=1(灯亮)

¬ 0=1(灯亮)

以下是采用74LS181的:

逻辑与运算:当M=1时, S=1011,F=AB,1010∧0111=0010;

逻辑非运算:M=1,S=1110,F=A+B,1010∨0111=1111 

 

加运算:M=0,F=A,加B,S=1001,CN=1,1010+0111=0001(满十六进1)

减法运算:M=0,S=0110,F=A减B减1,(需要减去进位位CN)1010-0111-1=0010

 逻辑非运算:当M=1,F=/B,S=0101,¬B=1000

逻辑异或运算:M=1,S=0110,F=A⊕B,1010⊕0111=1101

通过本实验,验证了计算机CPU中运算器算术逻辑运算单元的设计方法,先写出需要的逻辑表达式,然后在挑选需要用到的元器件,在本子上模拟出简单的电路图,然后在软件上用线将元器件正确连接起来,结束后运行并测试,当然,采用其他的方法也是可以实现的。无论是实际中使用电路、还是使用电路仿真乃至于使用电子表格等其他工具都可以设计并模拟实现计算机运算器的功能。 

五、思考问题

在本实验中,实验思考问题“单总线,双总线和三总线结构在设计上的异同”。

答:  单总线结构:对这种结构的运算器来说,在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到 ALU,需要分两次来做,而且还需要A,B两个缓冲寄存器。这种结构的主要缺点是操作速度较慢。虽然在这种结构中输入数据和操作结果需要三次串行的选通操作,但它并不会对每种指令都增加很多执行时间。只有在对全都是CPU寄存器中的两个操作数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只控制一条总线,故控制电路比较简单。

双总线结构:在这种结构中,两个操作数同时加到ALU进行运算,只需一次操作控制,而马上就可以得到运算结果。两条总线各自把其数据送至ALU的输入端因而必须在ALU输出端设置缓冲寄存器。为此,操作的控制要分两步完成:(1)在ALU的两个输入端输入操作数,形成结果并送入缓冲寄存器;(2)把结果送入目的寄存器。

三总线结构:在三总线结构中,ALU的两个输入端分别由两条总线供给,而ALU的输出则与第三条总线相连。这样,算术逻辑操作就可以在一步的控制之内完成。另外,设置了一个总线旁路器。如果一个操作数不需要修改,而直接从总线2传送到总线3,那么可以通过控制总线旁路器把数据传出;如需要修改,那么就借助于ALU。

总结

文章就到这里啦,181芯片需要参照上面的功能表会更好理解。拜拜啦:)!

  • 5
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FineFINE01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值