计算机组成原理学习-实验一 运算器实验(详细、系统)
如果你对计算机组成原理感兴趣,可以考虑阅读我的专栏
实验要求
基本要求
-
熟悉proteus仿真系统
-
设计并验证4位算数逻辑单元的功能
扩展要求
-
实现ALU输入输出锁存
-
实现8位算数逻辑运算单元
思考内容
思考单总线,双总线和三总线结构在设计上的异同
实验步骤
一、理论分析
计算机的运算器是一种类似于计算器的一个原件,他可以实现数逻运算和位运算,由于本实验要求设计ALU并实现其部分功能。经过选择,我们选取74LS181来实现ALU的功能部分。
74LS181的功能真值表如下:
本实验扩展要求为了实现8位数逻运算,所以会需要两个74LS181芯片。
本实验采用74LS373作为锁存器,来锁存数据,用LED-GREEN作为输出显示。
本实现的功能为:4位数逻运算:A异或B(扩展功能:A-B-1)
8位数逻运算:A异或B(扩展功能:A-B-1)
二、实验方法
按照基本要求,四位二进制算术逻辑运算单元电路:
本电路采用一个74LS181作为ALU核心,名为U2的74LS373作为4位操作数A和4位操作数B的锁存器,名为U5的74LS373作为74LS181的功能输入也就是S4~S0以及M的输入,输出结果用名为U6的74LS181锁存器中,最后74LS181锁存器连接4个LED-GREEN作为输出。
四位二进制的第一个功能:A异或B
四位二进制的第二个功能:A-B-1
扩展:八位二进制算术逻辑运算单元电路:
使用名为U7的74LS373锁存器记录八位操作数A和名为U8的74LS373锁存器记录八位操作数B,由于74LS181只能进行4位的运算,所以我们可以用两个74LS373分别来实现A操作数的第四位和B操作数的低四位运算以及A操作数的高四位和B操作数的高四位运算,分别用U1和U2存储A、B高四位数据和A、B低四位数据,其中名为U4的74LS181作低位运算的进位信号输入到名为U3的74LS181运算器中,两个运算器的S0~S4和M分别由两个锁存器输入,最后的运算结果保存在一个74LS373锁存器,后面接8个LED-GREEN作为输出。
八位二进制的第一个功能:A异或B
八位二进制的第二个功能:A-B-1
三、实验结果分析
我实现的功能为0110,M=1的A异或B所以用数据A:1111和数据B:1010进行实验,计算结果F3~F0=1010,实验结果和计算符合。
扩展功能:A-B-1,操作数A为1111,操作数B为0101,计算结果F3~F0=1001,实验结果与计算符合。
功能 | 模式选择M | 功能选择S3~S0 | 进位CN | 四位输入A | 四位输入B | 四位输出 | 进位输出 |
---|---|---|---|---|---|---|---|
算术A-B-1 | 0 | 0110 | 1 | 1111 | 1010 | 1010 | 0 |
逻辑异或 | 1 | 0110 | X | 1111 | 0101 | 1001 | X |
扩展为8位二进制后,功能A异或B,操作数A:01101110 操作数B:10111001,经过计算F7~F0=11010111,实验结果和计算符合。
扩展功能:A-B-1,操作数A:11101111操作数B:10011001,经过计算F7~F0=01010101,与实验结果符合。
功能 | 模式选择M | 功能选择S3~S0 | 进位CN | 八位输入A | 八位输入B | 八位输出 | 进位输出 |
---|---|---|---|---|---|---|---|
算术A-B-1 | 0 | 0110 | 1 | 01101110 | 10111001 | 11010111 | 0 |
逻辑异或 | 1 | 0110 | X | 11101111 | 10011001 | 01010101 | X |
四、思考问题
-
单总线结构:只有一条系统总线,所有的部件通过系统总线接入。疙瘩不见都链接在单一的一组总线上,故将这个单总线称为系统总线。
-
双总线结构:在单总线的基础上增加了一条专门用于CPU和主存之间的数据传送通路。这种结构保持了单总线系统简单、易于扩充的优点,但又在CPU和主存之间专门设置了一组高速的存储总线,使CPU可通过专用总线与存储器交换信息,减轻系统的的负担。
-
三总线结构:双总线的基础上增加I/O总线形成的。其中,系统总线是CPU、主存和通道(IOP)之间进行数据传送的公共通道,而I/O总线是多个外部设备与通道之间进行数据传送的公共通道。
五、问题和解决办法
问题1:接入总线之后,在输入端进行输入的时候,输出端不响应,显示为高阻态。(虽然我没有用总线吧,我采取的是用锁存器输入功能的方法,此处可以改为总线控制)
解决办法:在输入端要加上标号,对应的输出端也要加上标号,这样才能保证输入与输出对应。
加标号的方法:
1.右击一条输入总线的线
2.添加标号
3.输入端的线就有了标号
4.接着给输出端也加上标号
5.此时运行,发现输出不是高阻态了,证明成功了
六、结论
完成了本次实验要求的ALU运算功能电路设计与功能验证实验内容。我学会了熟练使用proteus软件设计电路的同时,增加了对运算器运算过程的了解,了解了74LS181和74LS373芯片的功能以及用法。了解了总线的使用方法,以及对单总线和双总线以及三总线的设计结构上的异同。
后话
- 首先给大家说一下,博主经常在线,如果有什么问题或者想法,可以在下方评论,我会积极反馈的。
- 其次还是要请大家能够多多指出问题,我也会在评论区等候大家!
.