一.实验目的
- 了解和掌握Am2901运算器的组成结构和工作原理;
- 认识和掌握TEC-2机运算器的组成和工作原理;
- 认识和掌握TEC-2机运算器相关控制信号的含义和使用方法;
二.实验原理
Am2901运算器
1.Am2901 芯片内部组成结构
AM2901 芯片是一个4位的位片结构的运算器部件,是一个完整的运算器,只是位数较少,具有很好的典型性,是个理想的教学实例。其内部组成结构如下图所示:
① 4 位的ALU,实现实种运算功能,其每一位上的2个输入端数据分别用R和S表示,则这8种功能是R+S,S-R,R-S 3种算术运算和R S, R S, /R S, R S,/(R S)5咱逻辑运算,这8种功能的选择控制,是用外部送入的3位编码值I5—I3实现的。ALU还能给出CN+4,F,OVR和F = 0000 4位状态信息,并能接收最低位的一个进位输入信号CN。ALU还给出了超前进位信号/G和/P。
② 16个4位的通用寄存器组,用R0-R15表示,和1个4位的Q寄存器。通用寄存器组为双端口读出(用A地址与B地址选取择每个寄存器)和单端口(用B地址选取择)控制写入的运行方式,而且运算后的结果经一个移位器实现写入(左移,不移,右移)。Q寄存器本身具有左移,右移功能且能接收ALU的运算结果,左右移位时,就有移出,移入信号RAM3,RAM0,Q3,Q0, 4个入号,它们都通过具有双向传送功能的三态门实现的。
③ 该芯片能接收外部送入的4位数据D3-D0,并输出奇制胜们的数据Y3-Y0。Y3-Y0可以是通用寄存器A端口上的输出或ALU的运算结果F,并还受输出允许控制信号/OE的控制,仅在/OE为低时,Y3-Y0才有输出,否则处于高阻态。
④ 从图上可以看到,ALU的两个输入端R和S分别可以接收D输入,A端口或逻辑0数据,和A端口,B端口,Q寄存器或逻辑0数据,Am2901器件只选取用了它们可能的全部12种组合中的8种,即A-Q,A-B,0-Q,0-B,0-A,D-A,D-Q,和D-0这8种,并用外部送来的3位控制码I2-I0来选择这是种组合。
⑤ Am2901还采用另外来货位外部送来的控制信号I8-I6,一是选择向外部送出的数据的来源(A口数据还是ALU运算结果),二是选择其内部的通用寄存器组和Q寄存器接收不接收和如何接收数据库写入(左移,右移,直送)。
⑥ 通用寄存器组通过A端口,B端口读出内容的输出处均有锁存器线路支持,以保证在执行诸如A+B结果送B运算时操作的正确性。
3.2.3Am2901芯片的控制信号及其控制码与操作
Am2901芯片的控制信号有9个,即I8-I0,这回个控制信号分成三组,它们是:
I8,I7,I6(B30-28):选择运算结果或有关数据以何种方式送往何处;
I5,I4,I3(B26-24):选择ALU的运算功能,共8种;
I2,I1,I0(B22-20):选择送入ALU进行运算的两个操作数据R和S的来源,共有8种组合。
这三组控制信号与相应控制码的关系如下表:
表3.1 Am2901 9个控制信号I8~I0
控制码 I8、I7、I6 I5、I4、I3 I2、I1、I0
0 0 0 F→Q F R + S A Q
0 0 1 无 F S – R A B
0 1 0 F→B A R – S 0 Q
0 1 1 F→B F R ∨ S 0 B
1 0 0 F/2→B
Q/2→Q F R ∧ S 0 A
1 0 1 F/2→B F /R ∧ S D A
1 1 0 2F→B
2Q→Q F R Å S D Q
1 1 1 2F→B F R ⊙ S D 0
寄存器结果选择 Y输出选择 运算功能选择 R S
注:R、S中的“0”为逻辑0。
3.2.4:TEC-2机运算器
一:TEC-2机运算器主体结构
4片间的连接关系是:
(1)16位的数据 输入由4片各自的D3-D0组成,其位序号人高位芯片向低位芯片顺序排成D15-D0
(2)16位的数据 输出由4片各自的Y3-Y0组成,其位序号人高位芯片向低位芯片顺序排成Y15-Y0.
(3)有高低位进位关系的3组信号,在高低位相邻芯片间连接关系是:
①:高位芯片的RAM0与低位芯片的RAM3相连
②:高位芯片的Q0与低位芯片的Q3相连
③:在串行进位方式下,高位芯片的Cn与低位芯片的Cn+4相连;若选用AM2902芯片(与74LS182芯片功能相同,两者可以互换使用)实现并行进位,则低位的3个芯片的并行进位信号/G和/P应送往Am2902的相并没有管脚,并将各自对应的片间进位输出信号送入相邻高位芯片Am2901的Cn管脚。同时支持串,并行丙种方式,有利于教学实验中方便地观察与测量每种进位方式的进位延迟时间。
此时,最低位芯片的RAM0与Q0是该16位的运算器的最低位的移入/出信号,最高位芯片的RAM3与Q3是运算器最高位的移入/出信号,均需有另外的逻辑电路与之连接,最低位的Cn是整个运算器的最低位进位输入信号。最高位的CN+4是16位完整运算器的进位输出信号。同理,只有最高们芯片的F3和OVR有意义,低位的3个芯片的F3和OVR不被使用,4个芯片的F=0000管脚连接在一起,并经一个电阻接到+5V电源,已得到16位的ALU的运算结果为“0”的标志位信号。
(4):其它的几组输入信号,支4片Am2901器件来说应有相同的值,包括/OE(控制选 通Y的输出),A地址,B地址,I8-80(控制Am2901的运算功能,数据来源,结果的处置)和工作脉冲CP,故应将4个芯片的这些的各对应管脚连接在一起.
三位微码与这8种处理的对应关系,已用表格形式给出。
本器件共用了4个输出端,即引用17.18.19.20分别组出CZVS4个标志位的值,并采用寄存器型逻辑记忆本次操作结果,此时每个输出引脚的表达式必须用C:=…的形式定义,且引脚的时钟脉冲信号必须引入。引脚13的/OE信号接地,表示输出信号是不被禁止的。
本器件共有14个输入信号,分别人引脚2-11,引脚14,引脚21-23送入,信号名字已给了央Gal20v8的描碠信息中。这些输入如何决定每一个输出位的结果,以逻辑表达式形式组出在每一个输出位的定义中。描述表中每行最右侧在分号之后给出的是注释内容。
表3.2三位微码与状态位的关系表
SST编码 状态位输入 说明
B34 B33 B32 C Z V S
0 0 0 C Z V S 四个标志位的值保持不变
0 0 1 CY F=0 OV F15 接收ALU的标志位输出值
0 1 0 IB7 IB6 IB5 IB4 恢复标志位现场值
0 1 1 0 Z V S 置C为0,另三个标志不变
1 0 0 1 Z V S 置C为1,另三个标志不变
1 0 1 RAM0 Z V S 右移操作,另三个标志不变
1 1 0 RAM15 Z V S 左移操作,另三个标志不变
1 1 1 Q0 Z V S 联合右移,另三个标志不变
二:运算器最低位进位信号的给出与控制(SCi)
运算器最低位的进位信号Cin,可能为0.1.C标志的值 ,为了调试与实验的方便,有时可送入一个连续的进位方波信号,当认运算器执行16位全1与这个最低闰的进位方波信号相加时,则加法器每一位的输出结果均为方波,有利于观察与调试.
表3.3
SCi编码(B11、B10) 00 01 10 11
Cin取值 0 1 C TCLK方波
三:运算器最高位,最低位的移入信号(SSH)
移入通用寄存器中的移入信号RAM15和RAM0,以及乘商寄存器中的移入信号Q15和Q0.左移时,向RAM0,或RAM0与Q0移入数据,右移时,向RAM15,或RAM15与Q15移入数据,我们把5条移位指令和剩除法计算中的联合移位都考虑进去,可以归纳出如下4种结果,并用两位微码SSH区分它们。
表3.4
控制码SSH 左 移 右 移 说明
B9 B8 RAM0 Q0 RAM15 Q15
0 0 0 X 0 X 通用寄存器逻辑位移
0 1 C X C X 通用寄存器与C循环移位
1 0 Q15 /F15 CY RAM0 原码除(左移)乘(右移)
1 1 X X F15⊕OVR RAM0 右移用于补码乘法
说明:
• 表中“X”为任意值,表示取任意值都不受影响
• 当通用寄存器本身移位时,Q寄存器不受影响
• 乘除法运算要求通用寄存器与Q寄存器联合移位,没有Q寄存器单独移位功能
• 左右移是由指令功能确定的
• SSH为0,用于逻辑移位指令
为1,用于循环移位指令
为2,用于乘除法运算的联合移位及上商
为3,用于算术右移指令,或补码乘法计算
三.实验内容:
脱机和联机时运算器实验
在脱机与联机两种方式下,可以用一些数据实现多种运算,以控制其操作过程与功能
检查所得结果的正确性。
(一) 脱机方式
-
将TEC-2机功能开关FS4置为“1”。
-
将TEC-2机主脉冲置为单步方式,即将STEP/CONT开关拨向STEP一边。
-
用D0+0→R0将立即数D0(A000H)置入寄存器R0(0000)。具体的微型开关和数据开关按下表进行设置:
波特率开关 数据开关
SW2(共12位,最末三位未用) SW1(共12位)
MI876 MI543 MI210 未用 A口 B口(R0) SCi SSH D15-D0
011 000 111 000 0000 0000 00 00 A000H
设置好各控制信号(MI8-MI0),并设置好十六位数据开关为“A000H”,即“1010 0000 0000 0000”后,按压一次STEP键,将立即数D0置入寄存器R0中。 -
用D1+0→R1将立即数D1(4000H)置入寄存器R1(0001)。具体的微型开关和数据开关按下表进行设置:
波特率开关 数据开关
SW2(共12位,最末三位未用) SW1(共12位)
MI876 MI543 MI210 未用 A口 B口(R1) SCi SSH D15-D0
011 000 111 000 0000 0001 00 00 4000H
用同样的方法将立即数D1置入寄存器R1中。 -
对寄存器R0、R1初始化后,便可对R0和R1进行各种算术、逻辑运算,此时R0保存的数据为D0(A000H),R1保存的数据为D1(4000H)。
-
将开关S2 S1 S0置于“110”时,指示灯将显示ALU的运算结果;将开关S2 S1 S0置于“000”时,指示灯将显示SVZC的状态,对应TEC-2机上H25 = S,H26 = V,H27 = Z,H28 = C。
-
对R0和R1进行各种算术、逻辑运算。
(二) 联机方式
启动TEC-2机,进入监控程序状态:具体操作如下:
- 将TEC-2机的FS1~FS4置为1010,STEP/CONT置成CONT。
- 打开计算机电源开关,使计算机正常启动。打开TEC-2电源开关,TEC-2大板左上角一排指示灯亮。
- 运行通讯程序PCEC,在DOS下命令提示(按默认设置:选择1,N)。联机后,进入联机状态,用A命令输入下列程序:(ENTER表示)
A800 ENTER
MOV R0,A000
MOV R1,4000
ADD R0, R1
SUB R0,R1
OR R0,R1
AND R0,R1
XOR RO, R1
ADC R0, R1
SHL RO
INC RO
RET
- 用“G”命令运行程序
在命令行提示符状态下输入:
G800
执行上面输入的程序
- 用“R”命令观察运行结果及状态
在命令行提示符状态下输入:
R
观察运行结果及状态
屏幕将显示:
R0=8001 R1=4000……
- 用“T”或“P”命令单步执行
在命令行提示符状态下输入:
T
或
P
执行之后,观察运行结果及状态
四. 实验器材
- TEC-2机一台,电脑一台
- TEC-2模拟软件一套
五. 实验分析与设计
- 脱机实验
R0+R1->R0
R0+0->R0
R0-R1->R0
R0+0->R0
R0⋁R1->R0
R0+0->R0
R0⋀R1->R0
R0+0->R0
2. 联机实验
MOV R0,A000
MOV R1,4000
ADD R0, R1
SUB R0,R1
OR R0,R1
AND R0,R1
RET
MOV R0,A000
MOV R1,4000
ADD R0, R1
SUB R0,R1
OR R0,R1
AND R0,R1
XOR RO, R1
ADC R0, R1
SHL RO
INC RO
RET
六. 思考题
在脱机方式下进行运算器实验时,在按STEP键之前和按STEP键之后,ALU的输出结果及状态SVZC有何不同,为什么?根据Am2901运算器的组成结构及其工作原理加以说明。
答:
(1)设置好相应微码和AB口地址之后,立即输出该运算功能的运算结果,此时ALU也已经得到SVZC的值,但并没有传给标志寄存器。按STEP之后,ALU的输出结果则为运算器再做一次运算的结果,这时SVZC所显示的值则为上一步标志位寄存器的值。
(2)根据Am2901运算器的组成结构可以知道,ALU是一个组合逻辑电路,设置A、B相应的值之后,相应的数据便会立即被传送到ALU中进行相应的运算,并且显示出对应的运算结果也会被存在存储器里面。按下STEP之后,在脉冲的作用下,. 上一步的运算结果也会被存在寄存器里面,但控制码和地址没有改变,所以上一步的运算结果会重新被送到ALU中进行运算,此时ALU的结果为一步运算结果再进行一次运算的数据。
SVZC存储在状态标志寄存器中,其值的改变需要有脉冲信号的作用才能改变,所以在按STEP之前,SVZC的值不变,按下STEP之后,SVZC显示的值才是上一步标志位的状态值。
七. 实验心得
- 了解和掌握Am2901运算器的组成结构和工作原理,实际操作中加深了对运算器关于二进制码的与或非操作,进一步提高了对机器实现计算功能的认知。
- 认识和掌握TEC-2机运算器的组成和工作原理,在使用TEC-2机运算器的过程中,模拟了实际的脱机和联机的运算操作,熟悉了模拟计算机相关操作,提高了我个人做实验,排查错误的能力。
- 认识和掌握TEC-2机运算器相关控制信号的含义和使用方法,了解到TEC-2机运算器各个部件的知识,知道了各个信号关系和控制组件,为接下来能够进行更多更复杂的计算机组成原理实验奠定了基础。