计算机组成原理学习-实验一 运算器实验(详细、系统)

如果你对计算机组成原理感兴趣,可以考虑阅读我的专栏

计算机组成原理【专栏】

须知

本文仅作学习笔记使用,仅在CSDN网站发布,如果在其他网站发现,均为侵权行为,请举报。作者:小王在努力。

实验要求

 基本要求

  1. 熟悉proteus仿真系统

  2. 设计并验证4位算数逻辑单元的功能

 扩展要求

  1. 实现ALU输入输出锁存

  2. 实现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

 四、思考问题

  1. 单总线结构:这种结构的运算器实现一次双操作数 运算要3步,1.A操作数从总线输入 2.B操作数从总线输入 3.输出结果从总线输出,总共要经历三个脉冲才能完成双操作数运算。
    在这里插入图片描述

  2. 双总线结构:此时加了一根总线,有了两根总线,只需要两步就可以完成双操作数的运算了 1.A操作数从总线1输入的同时B操作数从总线2输入 2.输出结果暂时放到缓存器中,经过一个脉冲送入总线
    在这里插入图片描述

  3. 三总线结构:三总线结构的话就简单了,只需要一步就可以完成双操作数的运算了1.操作数A从总线1输入,操作数B从总线2输入,同时计算结果从总线3输出。
    在这里插入图片描述

 五、问题和解决办法

 问题1:接入总线之后,在输入端进行输入的时候,输出端不响应,显示为高阻态。(虽然我没有用总线吧,我采取的是用锁存器输入功能的方法,此处可以改为总线控制)
 解决办法:在输入端要加上标号,对应的输出端也要加上标号,这样才能保证输入与输出对应。
 加标号的方法:
 1.右击一条输入总线的线
在这里插入图片描述
2.添加标号
在这里插入图片描述
在这里插入图片描述
3.输入端的线就有了标号
在这里插入图片描述
4.接着给输出端也加上标号
在这里插入图片描述
5.此时运行,发现输出不是高阻态了,证明成功了
在这里插入图片描述

 六、结论

 完成了本次实验要求的ALU运算功能电路设计与功能验证实验内容。我学会了熟练使用proteus软件设计电路的同时,增加了对运算器运算过程的了解,了解了74LS181和74LS373芯片的功能以及用法。了解了总线的使用方法,以及对单总线和双总线以及三总线的设计结构上的异同。

后话

  1. 首先给大家说一下,博主经常在线,如果有什么问题或者想法,可以在下方评论,我会积极反馈的。
  2. 其次还是要请大家能够多多指出问题,我也会在评论区等候大家!
    在这里插入图片描述 .

猜你喜欢

转载自blog.csdn.net/vangoudan/article/details/106559597