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

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

计算机组成原理【专栏】

实验要求

 基本要求

  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. 单总线结构:只有一条系统总线,所有的部件通过系统总线接入。疙瘩不见都链接在单一的一组总线上,故将这个单总线称为系统总线。

  2. 双总线结构:在单总线的基础上增加了一条专门用于CPU和主存之间的数据传送通路。这种结构保持了单总线系统简单、易于扩充的优点,但又在CPU和主存之间专门设置了一组高速的存储总线,使CPU可通过专用总线与存储器交换信息,减轻系统的的负担。

  3. 三总线结构:双总线的基础上增加I/O总线形成的。其中,系统总线是CPU、主存和通道(IOP)之间进行数据传送的公共通道,而I/O总线是多个外部设备与通道之间进行数据传送的公共通道。

 五、问题和解决办法

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

 六、结论

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

后话

  1. 首先给大家说一下,博主经常在线,如果有什么问题或者想法,可以在下方评论,我会积极反馈的。
  2. 其次还是要请大家能够多多指出问题,我也会在评论区等候大家!
    计算机组成原理学习-实验一 运算器实验(详细、系统) .