一、实验目的
1.掌握运算器的组成及工作原理;
2.了解算术逻辑运算单元的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程;
3.验证算术逻辑运算单元的功能。
二、实验设备
计算机组成原理实验系统一套,PC机一台。
三、预习要求
1.复习本次实验所用的各种数字集成电路的性能及工作原理;
2.预习实验步骤,了解实验中要求的注意之处。
四、实验原理
本实验中运算器原理图如图1-1示。
![](http://p.ananas.chaoxing.com/star3/origin/0ce085ca43108f809ff114cc299cd7f1.jpg)
图1-1 运算器原理图
该运算器可以完成两个8位机器数的运算,其内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A和暂存器B,三个部件同时接受来自A和B的数据,各部件对操作数进行何种运算由控制信号S3,S2,S1,S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志FZ。ALU中所有模块集成在一片CPLD中。
ALU和外围电路的连接如图1-2所示,图中的小方框代表排针座。其中ALU的输入和输出通过三态门74LS245连到CPU内总线上,另外还有指示灯标明进位标志FC和零标志FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘
’,表示这两根排针之间是连通的。
![](http://p.ananas.chaoxing.com/star3/origin/d128bddf48742af91c015af505dbb11b.jpg)
图1-2 ALU和外围电路连接原理图
运算器的逻辑功能表如表1-1所示,其中S3 S2 S1 S0 CN为控制信号,FC为进位标志,FZ为运算器零标志,表中功能栏内的FC、FZ表示当前运算会影响到该标志。
表1-1 运算器逻辑功能表
运算类型 | S3 S2 S1 S0 | CN | 功 能 |
逻辑运算 | 0000 | X | F=A(直通) |
0001 | X | F=B(直通) |
0010 | X | F=AB (FZ) |
0011 | X | F=A+B (FZ) |
0100 | X | F=/A (FZ) |
移位运算 | 0101 | X | F=A不带进位循环右移B(取低3位)位 (FZ) |
0110 | 0 | F=A逻辑右移一位 (FZ) |
1 | F=A带进位循环右移一位 (FC,FZ) |
0111 | 0 | F=A逻辑左移一位 (FZ) |
1 | F=A带进位循环左移一位 (FC,FZ) |
算术运算 | 1000 | X | 置FC=CN (FC) |
1001 | X | F=A加B (FC,FZ) |
1010 | X | F=A加B加FC (FC,FZ) |
1011 | X | F=A减B (FC,FZ) |
1100 | X | F=A减1 (FC,FZ) |
1101 | X | F=A加1 (FC,FZ) |
1110 | X | (保留) |
1111 | X | (保留) |
说明:表中“X”为任意态,下同
五、实验内容
验证运算器的算术逻辑运算功能(采用正逻辑),在指定数A和数B的取值情况下,改变运算器的功能设置,观察运算器的输出,并与理论值进行分析比较。
六、实验步骤
(1)按图1-3连接实验电路,并检查无误。图中将用户需要连接的信号用圆圈标明(其它实验相同)。
![](http://p.ananas.chaoxing.com/star3/origin/86133c724ba31cabba36dad4057239de.jpg)
图1-3 实验接线图
(2)将时序与操作台单元的开关KK2置为‘单步’档,开关KK1、KK3置为‘运行’档。
(3)打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。然后按动CON单元的CLR按钮,将运算器的A、B和FC、FZ清零。
(4)用输入开关向暂存器A置数3。
①拨动CON单元的SD27…SD20数据开关,使其形成真值3对应的机器数。指示灯显示亮为‘1’,灭为‘0’。
②置LDA=1,LDB=0,按动时序单元的ST按钮,产生一个T4上沿,则将数据3的机器数置入暂存器A中,暂存器A的值通过ALU单元的A7…A0八位LED灯显示。
(5)用输入开关向暂存器B置数5。
①拨动CON单元的SD27…SD20数据开关,使其形成真值5对应的机器数
②置LDA=0,LDB=1,连续按动时序单元的ST按钮,产生一个T4上沿,则将数据5置入暂存器B中,暂存器B的值通过ALU单元的B7…B0八位LED灯显示。
(6)改变运算器的功能设置,观察运算器的输出。
①置ALU_B=0、LDA=0、LDB=0,
②按表1-1置S3、S2、S1、S0和Cn的数值,完成表1-2中的运算,观察并记录数据总线LED显示灯显示的结果。(例如,若要做A与B相加,则应置S3、S2、S1、S0为1001。)
③按动时序单元的ST按钮,观察并记录进位标志FC和零标志FZ。
表1-2 运算结果表
A | B | 实现功能 | 功能选择(S3S2S1S0Cn) | 实验结果 |
F(16进制) | FC | FZ |
3 | 5 | F=A加B |
|
|
|
|
F=A加B加FC |
|
|
|
|
F=A减B |
|
|
|
|
F=A减1 |
|
|
|
|
F= A加1 |
|
|
|
|
F=A |
|
|
|
|
F=B |
|
|
|
|
F=A*B |
|
|
|
|
F=A逻辑右移一位 |
|
|
|
|
F=A带进位循环右移一位 |
|
|
|
|
如果实验箱和PC联机操作,则可通过软件中的数据通路图来观测实验结果。方法是:打开软件,选择联机软件的“【实验】—【运算器实验】”,打开运算器实验的数据通路图,
![](http://p.ananas.chaoxing.com/star3/origin/7fce6a7e320f04b2802e9c2be03f1bb6.jpg)
图1-4数据通路图
如图1-4所示。进行上面的手动操作,每按动一次ST按钮,数据通路图会有数据的流动,反映当前运算器所做的操作,或在软件中选择“【调试】—【单节拍】”,其作用相当于将时序单元的状态开关KK2置为‘单拍’档后按动了一次ST按钮,数据通路图也会反映当前运算器所做的操作。