计算机组成原理实验1
运算器(脱机)实验
通过开关、按键控制教学机的运算器执行指定的运算功能,并通过指示灯观察运算结果。
实验原理:
为了控制Am2901运算器能够按照我们的意图完成预期的操作功能,就必须向其提供相应的控制信号和数据。
控制信号包括
1、 选择送入ALU的两路操作数据R和S的组合关系(实际来源)。 2、 选择ALU的八种运算功能中我们所要求的一种。这可通过提供三位功能选择码I5、
I4、I3实现。
3、 选择运算结果或有关数据以什么方式送往何处的处理方案,这主要通过通用寄存器
组合和Q寄存器执不执行接收操作或位移操作,以及向芯片输出信息Y提供的是什么内容。这是通过I8、I7、I6三位结果选择码来控制三组选择门电路实现的。 外部数据包括
1、 通过D接收外部送来的数据
2、 应正确给出芯片的最低位进位输入信号Cn
3、 关于左右移位操作过程中的RAM3、RAM0、Q3和Q0的处理。 4、 当执行通用寄存器组的读操作时,由外部送入的A地址选中的通用寄存器的内容送
往A端口,由B地址选中的通用寄存器的内容送往B端口,B地址还用作通用寄存器的写汝控制。
对于芯片的具体线路,需说明如下几点:
1、 芯片结果输出信号的有无还受一个/OE(片选)信号的控制。
2、 标志位F=0000为集电极开路输出,容易实现“线与”逻辑,此管脚需经过一个电阻
接到+5V。
3、 RAM3、RAM0、Q3和Q0均为双向三态逻辑,一定要与外部电路正确连接。 4、 通用寄存器组通过A端口、B端口读出内容的输出处均有锁存器线路支持。 5、 该芯片还有两个用于芯片间完成高速进位的输出信号/G和/P。
6、 Am2901芯片要用一个CLK(CP)时钟信号作为芯片内通用寄存器、锁存器和Q寄
存器的打入信号。
实验步骤如下:
(1) (2) (3) (4)
选择运算器要完成的一项运算功能,包括数据来源,运算功能,结果保存等; 需要时,通过数据开关向运算器提供原始数据;
通过24位的微型开关向运算器提供为完成指定运算功能所需要的控制信号; 通过查看指示灯或用电表量测,观察运算器的运行结果(包括计算结果和特征标志)。
实验准备
12为微型开关的具体控制功能分配如下:
A口和B口地址:送给Am2901器件用于选择源与目的操作数的寄存器编号;
I8~I0:选择操作数来源、运算操作功能、选择操作数处理结果和运算器输出内容的3组3位控制码;
Sci,SSH和SST:用于确定运算器最低位的进位输入、移位信号的入/出和怎样处理Am2901产生的状态标志位的结果。
运算器的控制信号
000 001 010 011 100 101 110 111 I8~I6 F→Q 无 F→B F→B F/2→B Q/2→Q F/2→B 2*F→B 2*Q→Q 2*F→B 寄存器 结果选择 I5~I3 F F A F F F F F R+S S-R R-S R∨S R∧S A A 0 0 0 D D D R数据 I2~I0 Q B Q B A A Q S来源 R∧S R?S R?S 运算功能选择 Y输出选择
最低位进位信号Cm
2位选择码 00 01 10
Cm取值 0 1 C 状态寄存器的接收与保持
3位选择码 SST编码 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 1 RAM0 RAM7 Q0 状态位输入 C Z V S C CY Z F=0 Z Z Z Z Z V OVR V V V V V S F7 S S S S S 说 明 四个标志位的值保持不变 接收ALU的标志位输出的值 恢复标志位原现场值 置“0”C,另外三个标志位不变 置“1”C,另外三个标志位不变 右移操作,另外三个标志位不变 左移操作,另外三个标志位不变 联合右移,另外三个标志位不变 内部总线对应的一位 最高、最低位的移位输入信号的形成逻辑
2位控制码 SSH码编码 0 0 0 1 1 0 左移 RAM0 0 C Q7 Q0 X X /F7 0 C Cy 右移 RAM7 Q7 X X 说明 通用寄存器逻辑移位 通用寄存器与C循环移位 RAM0 原码除(左移)乘(右移)注:表中的X表示不必处理、不必过问该位的取值;
当通用寄存器本身移位时,Q寄存器不受影响;
乘除运算要求实现通用寄存器与Q寄存器联合移位;没有Q寄存器单独移位功能。
实验过程的数据记录
D1取为01h,D2取为10h,依次进行如下表所列的操作,则结果为: 压STEP前 运算 D1+0→R0 D2+0→R1 R0+R1→R0 R0-R1→R0 R1-R0→R1 R0∨R1→R0 R0∧R1→R0
I8~I0 011000111 011000111 A 不用 不用 B 0000 0001 0000 0000 0001 0001 0000 SCi SSH 00 00 00 01 01 00 00 00 00 00 00 00 00 00 ALU 输出 01h 10h 11h 01h 0Fh 0Fh 01h CZVS 随机 0000 0000 0000 1000 1000 1000 压STEP后 ALU 输出 01h 10h 21h F1h 0Eh 0Fh 01h CZVS 0000 0000 0000 1000 1000 1000 1000 011000001 0001 011001001 0001 011001001 0000 011011001 0000 011100001 0001