计算机组成原理实验运算器组成实验报告范文.docx
《计算机组成原理实验运算器组成实验报告范文.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验运算器组成实验报告范文.docx(11页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验运算器组成实验报告范文
计算机组成原理课程实验报告
9.3运算器组成实验
姓名:
曾国江
学号:
系别:
计算机工程学院
班级:
网络工程1班
指导老师:
完成时间:
评语:
得分:
9.3运算器组成实验
一、实验目的
1.熟悉双端口通用寄存器堆的读写操作。
2.熟悉简单运算器的数据传送通路。
3.验证运算器74LS181的算术逻辑功能。
4.按给定数据,完成指定的算术、逻辑运算。
二、实验电路
图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,编程开关拨到正常位置。
接线表如下:
数据通路
WR0
WR1
RS0
RS1
SW_BUS#
RS_BUS#
LDRi
电平开关
K0
K1
K2
K3
K3
K5
K6
2.打开电源
以下2条是将66H、99H分别写入R0、R1
3.置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开关如下:
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
0
1
1
0
0
1
1
0
拨动数据通路开关如下:
数据通路
WR0
WR1
SW-BUS#
RS-BUS#
LDRi
电平开关
0
0
0
1
1
DBUS观察情况:
01100110
按动QD,将66H数据写入R0。
R1,拨动SW7-SW0开关如下:
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
1
0
0
1
1
0
0
1
拨动数据通路开关如下:
数据通路
WR0
WR1
SW-BUS#
RS-BUS#
LDRi
电平开关
1
0
0
1
1
DBUS观察情况:
10011001
按动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
数据通路
RS0
RS1
SW-BUS#
RS-BUS#
LDRi
电平开关
0
0
1
0
0
DBUS观察情况:
01100110
显示R1
数据通路
RS0
RS1
SW-BUS#
RS-BUS#
LDRi
电平开关
1
0
1
0
0
DBUS观察情况:
10011001
(2)实验任务3的实验步骤和实验结果如下:
1.置DP=1,DB=0,编程开关拨开到正常位置。
接线图如下:
数据通路
WR0
WR1
RD0
RD1
RS0
RS1
LDRi
电平开关
K0
K1
K2
K3
K4
K5
K6
数据通路
LDDR1
LDDR2
S0
S1
S2
S3
M
电平开关
K7
K7
K8
K9
K10
K11
K12
数据通路
ALU_BUS#
SW_BUS#
电平开关
K13
K14
数据通路的信号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
数据开关
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
0
1
1
0
0
1
1
0
数据通路
数据通路
WR0
WR1
SW-BUS#
ALU-BUS#
LDRi
开关名称
K0
K1
K14
K13
K6
电平开关
0
0
0
1
1
按动QD
R1
数据开关
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
1
0
0
1
1
0
0
1
数据通路
数据通路
WR0
WR1
SW-BUS#
ALU-BUS#
LDRi
开关名称
K0
K1
K14
K13
K6
电平开关
1
0
0
1
1
按动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。
数据通路
RD0
RD1
RS0
RS1
LDRi
LDDR1
LDDR2
开关名称
K2
K3
K4
K5
K6
K7
K7
电平开关
0
0
1
0
0
1
1
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的变化。
开关如下:
数据通路
LDRi
LDDR1
LDDR2
M
ALU-BUS#
SW-BUS#
开关名称
K6
K7
K7
K12
K13
K14
电平开关
1
0
0
1
0
1
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的变化。
工作方式输入选择
S3S2S1S0
逻辑运算(M=H,Cn#=1)
算术运算(M=L,Cn#=1)
运算结果
进位C
运算结果
进位C
0000
99H
0
66H
0
0001
00H
0
0FFH
0
0010
99H
0
66H
0
0011
00H
0
0FFH
0
0100
0FFH
0
0CCH
0
0101
66H
0
65H
1
0110
0FFH
0
0CCH
1
0111
66H
0
65H
1
1000
99H
0
66H
0
1001
00H
0
0FFH
0
1010
99H
0
66H
0
1011
00H
0
0FFH
0
1100
0FFH
0
32H
1
1101
66H
0
65H
1
1110
0FFH
0
0CCH
0
1111
66H
0
65H
1
实验结果分析与结论:
DR1=66H=01100110DR2=99H=10011001
1.当M=1时,所有指令都执行逻辑运算
0000取反参加运算的只有来自DR1的数据!
DR1=10011001=99H
0001或非!
(DR1+DR2)=!
(01100110+10011001)=!
()==00H
0010(!
DR1&DR2)=10011001&10011001=10011001=99H
0011F=0
0100与非!
(DR1&DR2)=!
(01100110&10011001)==0FFH
0101取反参加运算的只有来自DR2的数据!
DR2=!
(10011001)=01100110=66H
0110异或(DR1XORDR2)=(01100110XOR10011001)==0FFH
0111(DR1&!
DR2)=(01100110&01100110)=01100110=66H
1000(!
DR1+DR2)=(10011001+10011001)=10011001=99H
1001同或!
(DR1XORDR2)=!
(01100110XOR10011001)==00H
1010F=B=99H
1011与(DR1ANDDR2)=(01100110AND10011001)==00H
1100F=1=0FFH
1101(DR1+!
DR2)=(01100110+01100110)=01100110=66H
1110或(DR1+DR2)=(01100110+10011001)==0FFH
1111F=DR1=66H
由于以上都是逻辑运算,所以没有进位
2.当M=0时,所有指令都执行算术运算
0000F=DR1=66HC=0
0001F=DR1+DR2=01100110+10011001==0FFH,C=0
0010F=DR1+!
DR2=01100110=66H,C=0
0011F=F-1=+==0FFH,C=0
0100F=DR1+DR1!
DR2=01100110+01100110=11001100=0CCH,C=0
0101F=(DR1+DR2)+DR1!
DR2=()+(01100110)=(01100101)=65H,C=1
0110F=(DR1-DR2-1)=(01100110-10011001+11111111)=0CCH,C=1
0111F=DR1!
DR2-1=01100110+=01100101=64H,C=1
1000F=DR1+DR1DR2=01100110+=01100110=66H,C=0
1001F=DR1+DR2==0FFH,C=0
1010F=(DR1+!
DR2)+DR1DR2=01100110=66H,C=0
1011F=DR1DR2–1==0FFH,C=0
1100F=DR1+2DR1=01100110+11001100=00110010=32H,C=1
1101F=(DR1+DR2)+DR1=11111111+01100110=01100101=65H,C=1
1110F=(DR1+!
DR2)+DR1=01100110+01100110==0CCH,C=0
1111F=DR1-1=01100110+=65H,C=1
七总结
在本次实验中,我熟悉了双端口通用寄存器堆的读写操作和运算器的数据传送通路。
通过本次的实验,我们发现了如下几个问题:
1.在数据开关输入数据存入寄存器后,为了能在数据显示灯查看所输入的数据,需要将RS-BUS#设置为低电平0,SW-BUS#和ALU-BUS#设置为高电平1。
否则会出现数据冲突,显示结果与输入的数据不一致。
2.在进行算数、逻辑运算后,要使结果显示在数据灯上,就要将ALU-BUS#设置为低电平0,SW-BUS#和RS-BUS#设置为高电平1。
3.在实验过程中,ALU-BUS#,SW-BUS#和RS-BUS#不能同时为低电平,否则会出错。