当前位置:文档之家› 计算机组成原理实验-运算器组成实验报告

计算机组成原理实验-运算器组成实验报告

计算机组成原理课程实验报告9.3 运算器组成实验*名:***学号:系别:计算机工程学院班级:网络工程1班指导老师:完成时间:评语:得分:9.3运算器组成实验一、实验目的1.熟悉双端口通用寄存器堆的读写操作。

2.熟悉简单运算器的数据传送通路。

3.验证运算器74LS181的算术逻辑功能。

4.按给定数据,完成指定的算术、逻辑运算。

二、实验电路S3S2S1S0M图3.1 运算器实验电路图3.1示出了本实验所用的运算器数据通路图。

参与运算的数据首先通过实验台操作板上的八个二进制数据开关SW7-SW0来设置,然后输入到双端口通用寄存器堆RF中。

RF(U30)由一个ispLSI1016实现,功能上相当于四个8位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。

双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从B端口(右端口)读出的通用寄存器,RD1、RD0用于选择从A端口(左端口)读出的通用寄存器。

而WR1、WR0用于选择写入的通用寄存器。

LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。

RF的A、B端口分别与操作数暂存器DR1、DR2相连;另外,RF的B端口通过一个三态门连接到数据总线DBUS上,因而RF中的数据可以直接通过B端口送到DBUS 上。

DR1和DR2各由1片74LS273构成,用于暂存参与运算的数据。

DR1接ALU的A输入端口,DR2接ALU的B输入端口。

ALU由两片74LS181构成,ALU的输出通过一个三态门(74LS244)发送到数据总线DBUS上。

实验台上的八个发光二极管DBUS7-DBUS0显示灯接在DBUS上,可以显示输入数据或运算结果。

另有一个指示灯C显示运算器进位标志信号状态。

图中尾巴上带粗短线标记的信号都是控制信号,其中S3、S2、S1、S0、M、Cn#、LDDR1、LDDR2、ALU_BUS#、SW_BUS#、LDRi、RS1、RS0、RD1、RD0、WR1、WR0都是电位信号,在本次实验中用拨动开关K0—K15来模拟;T2、T3为时序脉冲信号,印制板上已连接到实验台的时序电路。

实验中进行单拍操作,每次只产生一组T1、T2、T3、T4时序脉冲,需将实验台上的DP、DB开关进行正确设置。

将DP开关置1,DB开关置0,每按一次QD 按钮,则顺序产生T1、T2、T3、T4一组单脉冲。

三、实验设备1.TEC-5计算机组成实验系统1台2.逻辑测试笔一支(在TEC-5实验台上)3.双踪示波器一台(公用)4.万用表一只(公用)四、实验任务1、按图3.1所示,将运算器模块与实验台操作板上的线路进行连接。

由于运算器模块内部的连线已由印制板连好,故接线任务仅仅是完成数据开关、控制信号模拟开关、与运算器模块的外部连线。

注意:为了建立清楚的整机概念,培养严谨的科研能力,手工连线是绝对必要的。

2.用开关SW7—SW0向通用寄存器堆RF内的R0—R3寄存器置数。

然后读出R0—R3的内容,在数据总线DBUS上显示出来。

3.验证ALU的正逻辑算术、逻辑运算功能。

令DR1=55H,DR2=0AAH,Cn#=1。

在M=0和M=1两种情况下,令S3—S0的值从0000B 变到1111B,列表表示出实验结果。

实验结果包含进位C,进位C由指示灯显示。

注意:进位C是运算器ALU最高位进位Cn+4#的反,即有进位为1,无进位为0。

五、实验要求1.做好实验预习,掌握运算器的数据传输通路及其功能特性,并熟悉本实验中所用的模拟开关的作用和使用方法。

2.写出实验报告,内容是:(1) 实验目的。

(2)按实验任务3的要求,列表表示出实验结果。

(3)按实验任务4的要求,在表中填写各控制信号模拟开关值,以及运算结果值。

六、实验步骤和实验结果(1)、实验任务2的实验步骤和结果如下:(假定RO=66H,R1=99H)1.置DP=1,DB=0,编程开关拨到正常位置。

接线表如下:2.打开电源以下2条是将66H、99H分别写入R0、R13.置K0(WR0)=0,K1(WR1)=0,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,SW7-SW0=66H.在DBUS上将观察到DBUS=66H.按QD按钮将66H写入R0。

4.置K0(WR0)=1,K1(WR1)=0,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,SW7-SW0=99H.在DBUS上将观察到DBUS=99H.按QD按钮将99H写入R1。

R0,拨动SW7-SW0开关如下:拨动数据通路开关如下: DBUS 观察情况: 0110 0110 按动QD ,将66H 数据写入R0。

R1,拨动SW7-SW0开关如下:拨动数据通路开关如下: DBUS 观察情况: 1001 1001 按动QD ,将99H 数据写入R1。

以下2条是在DBUS 总线上显示R0、R1的值5.置K2(RS0)=0,K3(RS1)=0,K4(SW_BUS#)=1,K5(RS_BUS#)=0,K6(LDRi)=0,在 DBUS 上将观察到DBUS=66H 。

6.置K2(RS0)=1,K3(RS1)=0,K4(SW_BUS#)=1,K5(RS_BUS#)=0,K6(LDRi)=0,在 DBUS 上将观察到DBUS=99H 。

显示R0 DBUS 观察情况: 0110 0110显示R1DBUS观察情况: 1001 1001(2)实验任务3的实验步骤和实验结果如下:1.置DP=1,DB=0,编程开关拨开到正常位置。

接线图如下:数据通路的信号Cn#接VCC。

2.接通电源以下2条是向R0写入66H,向R1写入99H。

3.置K0(WP0)=0,K1(WR1)=0,K6(LDRi)=1,K13(ALU_BUS#)=1,K14(SW_BUS#)=0。

设置SW7-SW0为66H,按下QD按钮,将66H写入到R0中。

4.置K0(WP0)=1,K1(WR1)=0,K6(LDRi)=1,K13(ALU_BUS#)=1,K14(SW_BUS#)=0。

设置SW7-SW0为99H,按下QD按钮,将99H写入到R1中。

R0数据开关数据通路按动QDR1数据开关数据通路按动QD以下1条是将R0写入DR1,将R1写入DR2。

5.置K2(RD0)=0,K3(RD1)=0,K4(RS0)=1,K5(RS1)=0,K6(LDRi)=0,K7(LDDR1 和 LDDR2)=1,按下QD按钮,将R0写入DR1,将R1写入DR2。

这时DR1=66H,DR2=99H。

M=H(即:M=1),逻辑运算部分6.置K6(LDRi)=1,K7(LDDR1 和 LDDR2)=0,K8(S0)=0,K9(S1)=0,K10(S2)=0,K11(S3)=0,K12(M)=1,K13(ALU_BUS#)=0,K14(SW_BUS#)=1。

在数据总线DBUS上观察到逻辑运算结果99H。

按下QD按钮,观察到进位C为0。

7.在其他开关设置都不变的情况下,只改变K8(S0),K9(S1),K10(S2),K11(S3)的设置,观察其他15种逻辑运算结果,并按下QD按钮,观察到进位C的变化。

开关如下:M=L(即:M=0),算术运算部分8.置K6(LDRi)=1,K7(LDDR1 和 LDDR2)=1,K8(S0)=0,K9(S1)=0,K10(S2)=0,K11(S3)=0,K12(M)=0,K13(ALU_BUS#)=0,K14(SW_BUS#)=1。

在数据总线DBUS上观察到算数运算结果66H。

按下QD按钮,观察到进位C为0。

9. .在其他开关设置都不变的情况下,只改变K8(S0),K9(S1),K10(S2),K11(S3)的设置,观察其他15种逻辑运算结果,并按下QD按钮,观察到进位C的变化。

DR1 = 66H = 0110 0110 DR2 = 99H = 1001 10011.当M=1时,所有指令都执行逻辑运算0000 取反参加运算的只有来自DR1的数据 !DR1 = 1001 1001 = 99H0001 或非 !(DR1+DR2) = !(0110 0110 + 1001 1001) = !(11111111) = 00000000 = 00H 0010 (!DR1 & DR2) = 1001 1001 & 1001 1001 = 1001 1001 = 99H0011 F=00100 与非 !(DR1 & DR2) = !(0110 0110 & 1001 1001) = 11111111 = 0FFH0101 取反参加运算的只有来自DR2的数据 !DR2 = !(1001 1001) = 0110 0110 = 66H 0110 异或 (DR1 XOR DR2) = (0110 0110 XOR 1001 1001) = 11111111 = 0FFH0111 (DR1 & !DR2) = (0110 0110 & 0110 0110)= 0110 0110 = 66H1000 (!DR1 + DR2) = (1001 1001 + 1001 1001) = 1001 1001 = 99H1001 同或 !(DR1 XOR DR2) = !(0110 0110 XOR 1001 1001) = 00000000 = 00H1010 F = B = 99H1011 与 (DR1 AND DR2) = (0110 0110 AND 1001 1001) = 00000000 = 00H1100 F = 1 = 0FFH1101 (DR1 + !DR2) = (0110 0110 +0110 0110) = 0110 0110 = 66H1110 或 (DR1 + DR2) = (0110 0110 + 1001 1001) = 11111111 = 0FFH1111 F = DR1 = 66H由于以上都是逻辑运算,所以没有进位2.当M=0时,所有指令都执行算术运算0000 F = DR1 = 66H C = 00001 F = DR1+DR2 = 0110 0110 + 1001 1001 = 11111111 = 0FFH ,C = 00010 F = DR1+!DR2 = 0110 0110 = 66H , C = 00011 F = F - 1 = 00000000+ 11111111 = 11111111 = 0FFH , C = 00100 F = DR1 + DR1 !DR2 = 0110 0110 + 0110 0110 = 1100 1100 = 0CCH ,C = 0 0101 F = (DR1 + DR2)+ DR1 !DR2 = (11111111) + (0110 0110) = (0110 0101) = 65H , C = 10110 F = (DR1 - DR2 - 1) = (0110 0110 -1001 1001+1111 1111) = 0CCH ,C = 1 0111 F = DR1 !DR2- 1 = 0110 0110 + 11111111 = 0110 0101 = 64H ,C = 11000 F = DR1 + DR1 DR2 = 0110 0110+00000000 = 0110 0110 = 66H , C = 01001 F = DR1 + DR2 = 11111111 = 0FFH , C = 01010 F = (DR1 + !DR2)+ DR1 DR2 = 0110 0110 = 66H , C = 01011 F = DR1 DR2 – 1 = 11111111 = 0FFH , C = 01100 F = DR1+ 2DR1 = 0110 0110 + 1100 1100 = 0011 0010 = 32H , C = 11101 F = (DR1 + DR2) + DR1 = 1111 1111 + 0110 0110 = 0110 0101 = 65H ,C = 1 1110 F = (DR1 + !DR2) + DR1 = 0110 0110 + 0110 0110 = 11001100 = 0CCH ,C =0 1111 F = DR1 - 1 = 0110 0110 + 11111111 = 65H ,C = 1七总结在本次实验中,我熟悉了双端口通用寄存器堆的读写操作和运算器的数据传送通路。

相关主题