计算机组成原理实验报告
实验二 运算器实验
一、实验目的
1) 掌握算术逻辑运算单元的工作原理。
2) 熟悉简单运算器的电路组成。
3) 熟悉4位运算功能发生器(74LS181)的算术、逻辑运算功能。
二、实验要求
1) 做好实验预习,看懂电路图,熟悉实验中所用芯片各引脚的功能和连接方法。
2) 按照实验内容与步骤的要求,认真仔细地完成实验。
三、实验内容与步骤
1. 运行虚拟实验系统,绘制运算器实验电路,实验电路截图如下:
图1运算器虚拟实验电路
2. 进行电路预设置,具体步骤如下:
1) 将ALU-BUS设为高电平,关闭ALU输出端的三态门;
2) 将两片74LS273的MR都设为高电平,否则74LS273会处于清零状态。
3. 打开电源开关。
4. 设置SW7~SW0向DR1和DR2置数。以DR1=65H,DR2=A7H为例,具体步骤如下:
1) 将SW-BUS置0,打开数据输入端的三态门;
2) 将数据开关的SW7~SW0置为01100101;
3) 发出P1单脉冲信号,在P1的上升沿,数据打入寄存器DR1;
4) 将数据开关的SW7~SW0置为10100111;
5) 发出P2单脉冲信号,在P2的上升沿,数据打入寄存器DR2。
6) 将SW-BUS置1,关闭数据输入端的三态门;
5. 检验DR1和DR2中存的数是否正确。其具体操作如下:
1) ALU-BUS=0,打开ALU输出端的三态门;
2) 设置Cn=1,ALU无进位输入;
3) 将S3、S2、S1、S0、M置为00000,指示灯应显示DR1中数据01100101;
结果如图:
4) 将S3、S2、S1、S0、M置为10101,指示灯应显示DR2中数据10100111。
结果如图:
6. 验证74LS181的算术运算和逻辑运算功能(采用正逻辑)。在给定DR1=65H,DR2=A7H的情况下,改变运算器的功能模式,观察运算器的输出,并填入表1,然后和理论值进行比较、验证。
表1 运算器功能验证
工作模式选择 S3 S2 S1 S0 | 算术运算(M=0)(Cn=1无进位) | 逻辑运算(M=1) | ||
功能 | 输出值 | 功能 | 输出值 | |
0000 | A | 01100101 | A(—) | 10011010 |
0001 | A+B | 11100111 | A(——)+(——)B(——) | 00011000 |
0010 | A+B(—) | 01111101 | A(—)B | 10000010 |
0011 | 0 minus 1 | 11111111 | Logical 0 | 00000000 |
0100 | A plus AB(—) | 10100101 | A(——)B(——) | 11011010 |
0101 | (A+B) plus AB(—) | 00100111 | B(—) | 01011000 |
0110 | A minus B minus 1 | 10111101 | A⊕B | 11000010 |
0111 | AB(—) minus 1 | 00111111 | AB(—) | 01000000 |
1000 | A plus AB | 10001010 | A(—)+B | 10111111 |
1001 | A plus B | 00001100 | A(——)⊕(——)B(——) | 00111101 |
1010 | (A+B(—)) plus AB | 10100010 | B | 10100111 |
1011 | AB minus 1 | 00100100 | AB | 00100101 |
1100 | A plus A | 11001010 | Logical 1 | 11111111 |
1101 | (A+B) plus A | 01001100 | A+B(—) | 01111101 |
1110 | (A+B(—)) plus A | 11100010 | A+B | 11100111 |
1111 | A minus 1 | 01100100 | A | 01100101 |
注意:A和B分别表示参与运算的两个数,“+”表示逻辑或,“plus”表示算术求和。
四、思考与分析
1. 运算器主要由哪些器件组成?这些器件是怎样连接的?
器件组成
- 算术逻辑单元(ALU):
- 这是运算器的核心部分,负责执行各种算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)。
- ALU 通常包含加法器、减法器(通过加法器和补码实现)、乘法器、除法器等功能单元。
- 寄存器:
- 寄存器用于存储操作数、中间结果和最终结果。
- 常见的寄存器包括累加器(用于累加操作)、暂存器(用于暂存数据)、通用寄存器组(用于存放程序中用到的数据)等。
- 寄存器还可以包括状态寄存器,用于记录运算的结果状态,如溢出、负标志、进位或借位标志等。
- 选择器/多路器:
- 选择器或多路器用于选择要进行运算的操作数。
- 它决定了要从寄存器中选择哪些数据进行操作,以及将结果存储在哪个寄存器中。
- 运算控制器:
- 运算控制器是运算器的“大脑”,负责根据指令控制运算的类型和顺序。
- 它产生控制信号,指示ALU执行哪种运算,以及从何处获取操作数和将结果存储在哪里。
- 内部总线:
- 内部总线用于连接运算器内部的各个器件,实现数据的传输和控制信号的传递。
- 数据总线用于传输操作数、中间结果和最终结果;控制总线用于传输控制信号;地址总线(虽然不直接属于运算器,但在数据访问时很重要)用于传输内存地址或寄存器地址。
连接方式
- 总线连接:
- 运算器中的各个器件通常采用总线的方式进行连接。
- 总线是一种并行传输方式,可以同时传输多个位的数据。
- 数据总线、控制总线和地址总线通过连接各个器件,实现了运算器内部的数据传输和控制。
- 控制信号:
- 运算控制器通过控制总线向各个器件发送控制信号。
- 这些控制信号指示ALU执行哪种运算、选择器选择哪些操作数、寄存器存储或读取数据等。
- 数据传输:
- 操作数和中间结果通过数据总线在寄存器、ALU和选择器之间传输。
- 最终结果通常被存储在寄存器中,以便后续使用或送回存储器。
2. 芯片 74LS181 没有减法:A minus B 的指令,怎样实现减法功能?
将CN置为0,可以实现减法
65H-A7H=-66 1011 1110
则结果为 1011 1110