本文主要是介绍计算机组成原理--运算器实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、实验目的
1. 了解运算器的组成结构。
2. 掌握运算器的工作原理。
二、实验设备
PC机一台,TD-CMA实验系统一套,USB线一根,排线若干。
三、实验原理
本实验的原理如图1-1所示。
运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A和暂存器B,三个部件同时接受来自A和B的数据,各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。
图1-1 运算器原理图
运算器部件由一片CPLD实现。ALU的输入和输出通过三态门74LS245连到CPU内总线上,另外还有指示灯标明进位标志FC和零标志FZ。(请注意:实验箱上凡是印标注有马蹄形标记‘ ’,表示这两根排针之间是连通的)。图中除T4和CLR,其余信号均来自于ALU单元的排线座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。T4由时序单元的TS4提供(时序单元的介绍见附录二),其余控制信号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。
ALU和外围电路的连接如图1-2所示,图中的小方框代表排针座。
运算器的逻辑功能表如表1-1所示,其中S3 S2 S1 S0 CN为控制信号,FC为进位标志,FZ为运算器零标志,表中功能栏内的FC、FZ表示当前运算会影响到该标志。
图1-2 ALU和外围电路连接原理图
表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”为任意态,下同
四、实验连线
1. 按图1-3连接实验电路,并检查无误。图中将用户需要连接的信号用圆圈标明(其它实验相同)。
图1-3 实验接线图
2. 将时序与操作台单元的开关KK2置为‘单拍’档,开关KK1、KK3置为‘运行’档。
3. 打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应关闭电源,重新检查接线,直到错误排除。然后按动CON单元的CLR按钮,将运算器的A、B和FC、FZ清零。
4. 用一根USB线连接PC机和实验箱。
五、实验内容及实验步骤
1.用输入开关向暂存器A置数。
① 拨动CON单元的SD27…SD20数据开关,形成二进制数01100101(或其它数值),数据显示亮为‘1’,灭为‘0’。
② 置LDA=1,LDB=0,连续按动时序单元的ST按钮,产生一个T4上沿,则将二进制数01100101置入暂存器A中,暂存器A的值通过ALU单元的A7…A0八位LED灯显示。
2.用输入开关向暂存器B置数。
① 拨动CON单元的SD27…SD20数据开关,形成二进制数10100111(或其它数值)。
② 置LDA=0,LDB=1,连续按动时序单元的ST按钮,产生一个T4上沿,则将二进制数10100111置入暂存器B中,暂存器B的值通过ALU单元的B7…B0八位LED灯显示。
3.改变运算器的功能设置,观察运算器的输出。
在给定暂存器A、B的情况下,置ALU_B=0、LDA=0、LDB=0,然后按表1-1改变运算器的功能设置即S3、S2、S1、S0和Cn的数值(状态),并观察数据总线LED显示灯显示的结果,填入运算结果表1-2中。并与运算器逻辑功能表1-1的理论值进行比较分析。
4.通过软件中的数据通路图来观测实验结果
如果实验箱和PC联机,则可通过软件中的数据通路图来观测实验结果。
表1-2 运算结果表
运算类型 | A | B | S3 S2 S1 S0 | CN | F理论值 | F实测值 | FC | FZ |
逻辑运算 | 65 | A7 | 0 0 0 0 | X | 01100101 | 01100101 | 0 | 0 |
65 | A7 | 0 0 0 1 | X | 10100111 | 10100111 | 0 | 0 | |
65 | A7 | 0 0 1 0 | X | 00100101 | 00100101 | 0 | 0 | |
65 | A7 | 0 0 1 1 | X | 11100111 | 11100111 | 0 | 0 | |
65 | A7 | 0 1 0 0 | X | 10011010 | 10011010 | 0 | 0 | |
移位运算 | 65 | A7 | 0 1 0 1 | X | 11001010 | 11001010 | 0 | 0 |
65 65 | A7 A7 | 0 1 1 0 | 0 | 11001010 | 11001010 | 0 | 0 | |
1 | 00110010 | 00110010 | 0 | 0 | ||||
65 65 | A7 A7 | 0 1 1 1 | 0 | 10110010 | 10110010 | 1 | 0 | |
1 | 11001010 | 11001010 | 1 | 0 | ||||
算术运算 | 65 | A7 | 1 0 0 0 | X | 11001010 | 11001010 | 0 | 0 |
65 | A7 | 1 0 0 1 | X | 01100101 | 01100101 | 1 | 0 | |
65 65 | A7 A7 | 1 0 1 0(FC=0) | X | 00000011 | 00000011 | 0 | 0 | |
1 0 1 0(FC=1) | X | 00001100 | 00001100 | 1 | 0 | |||
65 | A7 | 1 0 1 1 | X | 00001101 | 00001101 | 1 | 0 | |
65 | A7 | 1 1 0 0 | X | 10111110 | 10111110 | 1 | 0 | |
65 | A7 | 1 1 0 1 | X | 01100100 | 01100100 | 0 | 0 |
六、思考题
1.CON 单元的控制信号 LDA 和 S0 有区别吗?
是有区别的。LDA是将地址单元中的数据内容加载到累加器中,而S0是将累加器中的数据内容送给地址单元。
LDA 和 S0 是两个不同的控制信号。LDA(Load A)通常用于指示将数据加载到寄存器 A,而 S0 是一个更通用的控制信号,它可以用于控制多个操作,如选择输入或输出设备、控制数据传输方向等。具体的功能取决于电路设计和上下文。
2.实验电路中数据开关设置的数据可以同时送暂存器 A 和 B 两个寄存器吗?如果可以,该如
何操作?
可以同时送到A和B寄存器。需要在数据开关的控制下,将数据同时送到A和B寄存器中
a. 将数据开关设置为所需的数据值。
b. 为寄存器 A 和 B 同时提供一个加载信号(例如,将 LDA 和 LDB 信号设置为高电平)。
c. 在适当的时钟边沿(例如上升沿或下降沿),数据将同时加载到寄存器 A 和 B。
七、实验分析和心得体会
在实验过程中,首先要学会看懂电路的每个单元代表的区域名称,接着要学会看懂电路图以及按着步骤一步一步来,实验要完整无误的进行,确保实验接线图连接的正确性。这样才能够保证在进行实验时数据通路的流向以及数据的准确性,从而达到实验目的。并且要在实验过程中理解每一步骤的原因,也加强自己的理解性和掌握程度。
这篇关于计算机组成原理--运算器实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!