《计算机组成原理》实验指导书.docx
《《计算机组成原理》实验指导书.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》实验指导书.docx(111页珍藏版)》请在冰豆网上搜索。
![《计算机组成原理》实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-2/7/17693e2e-9197-4c34-a112-91684ac29e3c/17693e2e-9197-4c34-a112-91684ac29e3c1.gif)
《计算机组成原理》实验指导书
第二章分部实验
为掌握计算机的基本组成和工作原理,并为课程设计做准备,本章安排了四个分部实验,这些实验均在COP2000计算机组成原理实验仪上进行。
§2.1分部实验1
本实验包括寄存器的验证实验及运算器的验证、设计实验。
2.1.1寄存器实验
寄存器是一种重要的数字电路部件,常用来暂时存放数据、指令等。
一个触发器可以存储一位二进制代码,存放N位二进制代码,用N个触发器即可。
因为我们的模型机是8位的,因此在本模型机中大部分寄存器是8位的,标志位寄存器(Cy,Z)是二位的。
在COP2000实验仪中,寄存器由74HC574构成,它可以存放8位二进制代码,其中的一位二进制代码是由一个D触发器来存储的。
首先,我们先介绍一下74HC574的工作原理。
图2-1是74HC574的原理图。
图2-174HC574原理图
我们可以看到,在CLK的上升沿,输入端的数据被打入到8个触发器中。
当OC=1时,触发器的输出被关闭,当OC=0时,触发器输出数据。
表2-1列出了74HC574的使用方法。
表2-174HC574使用方法
图2-2为74HC574的工作波形图。
图2-274HC574工作波形图
一、实验一:
A,W寄存器实验
1、实验器材
COP2000计算机组成原理实验仪、万用表。
2、实验目的
(1)了解并掌握74HC574的工作原理及使用方法。
(2)掌握寄存器A,W的工作原理。
3、实验要求
分别验证A,W寄存器的功能。
4、实验原理
A,W寄存器是作用于ALU输入端的两个寄存器,两个参与运算的数分别来自A或W。
图2-3、图2-4分别为寄存器A,W的原理图。
图2-3寄存器A原理图
图2-4寄存器W原理图
A,W寄存器的写工作波形如图2-5所示。
图2-5寄存器A,W写工作波形图
其中,AEN、WEN分别为A选通和B选通。
5、实验步骤与内容
(1)按照表2-2连线
表2-2A,W寄存器实验连线表
(2)将数据55H写入A寄存器
首先将二进制开关K23-K16用于数据总线DBUS[7:
0]的数据输入,置数据55H。
然后,置如下控制信号:
接下来,按住CLOCK脉冲键,CLOCK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据55H被写入A寄存器。
(3)将数据66H写入W寄存器
首先将二进制开关K23-K16用于数据总线DBUS[7:
0]的数据输入,置数据66H。
然后,置如下控制信号:
接下来,按住CLOCK脉冲键,CLOCK由高变低,这时寄存器W的黄色选择指示灯亮,表明选择W寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据66H被写入W寄存器。
可以看到,数据是在放开CLOCK键后改变的,也就是CLOCK的上升沿数据被打入。
另外,WEN,AEN为高时,即使CLOCK有上升沿,寄存器的数据也不会改变。
二、寄存器组R(R0-R4)实验
1、实验器材
COP2000计算机组成原理实验仪、万用表。
2、实验目的
掌握寄存器组的工作原理。
3、实验要求
验证寄存器组的功能。
4、实验原理
本模块的设置,为实验仪提供了4个8位通用寄存器。
它对运算器结构、运算速度、指令系统的设计等都有密切的关系。
我们可以通过SB、SA进行4个寄存器的选择。
寄存器组的原理见图2-6。
图2-6寄存器组R原理图
寄存器组R的读、写工作波形图如图2-7及图2-8所示。
图2-7寄存器组R的写工作波形图
图2-8寄存器组R的读工作波形图
5、实验内容与步骤
在本实验中,我们会将不同的数据分别写入寄存器组的不同寄存器中,并分别读出。
(1)首先,按照表2-3连线。
表2-3寄存器组实验连线表
(2)分别将数据11H、22H、33H、44H写入寄存器R0、R1、
R2和R3。
具体步骤如下:
1)将11H写入R0寄存器
首先,二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据11H。
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
1
0
0
0
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器R0的黄色选择指示灯亮,表明选择R0寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据11H被写入R0寄存器。
2)将22H写入R1寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据22H
K23
K22
K21
K20
K19
K18
K17
K16
0
0
1
0
0
0
1
0
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
1
0
0
1
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器R1的黄色选择指示灯亮,表明选择R1寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据22H被写入R1寄存器。
3)将33H写入R2寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据33H
K23
K22
K21
K20
K19
K18
K17
K16
0
0
1
1
0
0
1
1
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
1
0
1
0
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器R2的黄色选择指示灯亮,表明选择R2寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据33H被写入R2寄存器。
4)将44H写入R3寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据44H
K23
K22
K21
K20
K19
K18
K17
K16
0
1
0
0
0
1
0
0
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
1
0
1
1
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器R3的黄色选择指示灯亮,表明选择R3寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据44H被写入R3寄存器。
我们可以看到,K1(SB),K0(SA)用于选择寄存器。
K1(SB)
K0(SA)
选择
0
0
R0
0
1
R1
1
0
R2
1
1
R3
(3)分别将寄存器组R中R0、R1、R2、R3中的内容读出。
1)读R0寄存器
置控制信号为:
K11(RK11(RRD)
K10(RWR)
K1(SB)
K0(SA)
0
1
0
0
这时寄存器R0的红色输出指示灯亮,R0寄存器的数据送上数据总线。
此时液晶显示DBUS:
1100010001.然后将K11(RRD)置为1,关闭R0寄存器输出.
2)读R1寄存器
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
0
1
0
1
这时寄存器R1的红色输出指示灯亮,R1寄存器的数据送上数据总线。
此时液晶显示DBUS:
2200100010.然后将K11(RRD)置为1,关闭R1寄存器输出.
3)读R2寄存器
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
0
1
1
0
这时寄存器R2的红色输出指示灯亮,R2寄存器的数据送上数据总线。
此时液晶显示DBUS:
3300110011.然后将K11(RRD)置为1,关闭R2寄存器输出.
4)读R3寄存器
置控制信号为:
K11(RRD)
K10(RWR)
K1(SB)
K0(SA)
0
1
1
1
这时寄存器R3的红色输出指示灯亮,R3寄存器的数据送上数据总线。
此时液晶显示DBUS:
4401000100.然后将K11(RRD)置为1,关闭R3寄存器输出.
我们可以看到,数据在K11(RRD)为0时输出,不是沿触发,与数据打入不同。
三、MAR地址寄存器,ST堆栈寄存器,OUT输出寄存器实验
1、实验器材
COP2000计算机组成原理实验仪、万用表。
2、实验目的
掌握MAR地址寄存器,ST堆栈寄存器,OUT输出寄存器的工作原理。
3、实验要求
验证上述三种寄存器的功能。
4、实验原理
MAR为存储器地址寄存器,其功能是存储操作数在内存中的地址。
其原理图见图2-9。
图2-9MAR地址寄存器原理图
图中,信号MAREN的功能是将数据总线DBUS上数据MAR,信号MAROE的功能是将MAR的值送到地址总线ABUS上。
ST堆栈寄存器的作用,是出现中断或子程序调用时,保存断点处PC的值,以便中断或子程序结束时,能继续执行原程序。
其原理图见2-10。
图2-10ST堆栈寄存器原理图
图中,信号STEN的作用是将数据总线DBUS上数据存入堆栈寄存器ST中。
OUT寄存器为输出端口寄存器,其原理图见图2-11。
图2-11寄存器OUT原理图
图中,信号OUTEN作用是将数据总线DBUS上的数据送到输出端口寄存器OUT中。
寄存器MAR,ST,OUT的写工作波形见图2-12所示。
图2-12寄存器MAR,ST,OUT写工作波形图
5、实验内容与步骤
本实验中,我们会将不同的数据写入寄存器MAR、ST和OUT。
(1)首先,按照表2-4连线。
表2-4寄存器MAR,ST,OUT实验连线路表
(3)将数据12H写入MAR寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据12H
K23
K22
K21
K20
K19
K18
K17
K16
0
0
0
1
0
0
1
0
置控制信号为:
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器MAR的黄色选择指示灯亮,表明选择MAR寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据12H被写入MAR寄存器。
我们看到,信号K14(MAROE)为0,MAR寄存器中的地址输出到地址总线ABUS上,此时,MAR红色输出指示灯亮。
然后,我们将信号K14(MAROE)置为1,从而关闭MAR输出。
(4)将34H写入ST寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据34H
K23
K22
K21
K20
K19
K18
K17
K16
0
0
1
1
0
1
0
0
置控制信号为:
K14(MAROE)
K15(MAREN)
K12(STEN)
K13(OUTEN)
1
1
0
1
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器ST的黄色选择指示灯亮,表明选择ST寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据34H被写入ST寄存器。
(5)将56H写入OUT寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据56H
K23
K22
K21
K20
K19
K18
K17
K16
0
1
0
1
0
1
1
0
置控制信号为:
K14(MAROE)
K15(MAREN)
K12(STEN)
K13(OUTEN)
1
1
1
0
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器OUT的黄色选择指示灯亮,表明选择OUT寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据56H被写入OUT寄存器。
2.1.2运算器实验
运算器是计算机的执行部件,计算机中所有的算术运算和逻辑运算都是由运算器来执行的。
COP2000的运算器模块包括ALU部件、寄存器组(R0-R3)、累加器A、工作寄存器W、移位电路和数据通路等。
其中,ALU为算术逻辑单元,是运算器的核心部件,可实现8种算术和逻辑运算。
运算器结构图见图2-13。
数据总线
寄存器组(R0-R3)
寄存器W
寄存器A器器
L
R
D
图2-13COP2000运算器结构
COP2000中的算术逻辑单元ALU是利用大规模可编程逻辑器件实现,具体是由一片XC9572-PLCC44实现的。
它是运算器的核心,可以对两个8位二进制数进行8种算术或逻辑运算,并通过S2,S1,S0来选择。
参与运算的操作数来自寄存器A和W,运算结果输出到直通门D。
一、运算器验证实验
1、实验器材
COP2000计算机组成原理实验仪、万用表。
2、实验目的
了解8位模型机中,算术、逻辑单元(ALU)的工作原理和实验方法。
3、实验要求
验证运算器功能。
4、实验原理
COP2000实验仪运算器中的ALU是利用大规模可编程逻辑器件实现,具体是由一片XC9572-PLCC44实现的。
该实验仪提供了8种算术运算和逻辑运算,并通过S2,S1,S0来选择。
参与运算的操作数来自寄存器A和寄存器W,运算结果输出到直通门D。
表2-5列出了实验仪提供的8种运算。
表2-5运算器提供的8种运算
S2S1S0
功能
000
A+W加
001
A-W减
010
A|W或
011
A&W与
100
A+W+C带进位加
101
A-W-C带进位减
110
~AA取反
111
A输出A
5、实验内容与步骤
(1)按照表2-6连线。
表2-6运算器验证实验连线表
连接
信号孔
接入孔
作用
有效电平
1
J1座
J3座
将K23-K16接入DBUS[7:
0]
2
S0
K0
运算器功能选择
3
S1
K1
运算器功能选择
4
S2
K2
运算器功能选择
5
AEN
K3
选通A
低电平有效
6
WEN
K4
选通W
低电平有效
7
CyIN
K5
运算器进位输入
8
ALUCK
CLOCK
ALU工作脉冲
上升沿打入
(2)将55H写入A寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据55H
K23
K22
K21
K20
K19
K18
K17
K16
0
1
0
1
0
1
0
1
置控制信号为:
K5(CyIN)
K4(WEN)
K3(AEN)
K2(S2)
K1(S1)
K0(S0)
0
1
0
0
0
0
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据55H被写入A寄存器。
(3)将33H写入W寄存器
二进制开关K23-K16用于DBUS[7:
0]的数据输入,置数据33H
K23
K22
K21
K20
K19
K18
K17
K16
0
0
1
1
0
0
1
1
置控制信号为:
K5(CyIN)
K4(WEN)
K3(AEN)
K2(S2)
K1(S1)
K0(S0)
0
0
1
0
0
0
按住CLOCK脉冲键,CLOCK由高变低,这时寄存器W的黄色选择指示灯亮,表明选择W寄存器。
放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据33H被写入W寄存器。
(4)检验运算器的运算结果
置如下的控制信号,检验运算器的运算结果
K5(CyIN)
K2(S2)
K1(S1)
K0(S0)
结果(直通门D)
注释
X
0
0
0
88H
加运算
X
0
0
1
22H
减运算
X
0
1
0
77H
或运算
X
0
1
1
11H
与运算
0
1
0
0
88H
带进位加运算
1
1
0
0
89H
带进位加运算
0
1
0
1
22H
带进位减运算
1
1
0
1
21H
带进位减运算
X
1
1
0
AAH
取反运算
X
1
1
1
55H
输出A
我们看到,运算器在加上控制信号及数据(A,W)后,立刻给出结果,不须时钟。
二、运算器验证实验
1、实验器材
COP2000计算机组成原理实验仪、万用表。
2、实验目的
学习用ABEL及VHDL语言描述硬件逻辑,学习使用EDA开发环境。
3、实验要求
将实现ALU功能的ABEL程序用VHDL程序代替,并验证结果,具体的ABEL程序见6。
(1)
4、实验原理
COP2000实验仪运算器中的ALU是由一片XC9572-PLCC44实现的,该实验仪提供了8种算术运算和逻辑运算,并通过S2,S1,S0来选择。
参与运算的操作数来自寄存器A和寄存器W,运算结果输出到直通门D。
我们知道,目前常用的硬件描述语言有AHDL、ABEL、VHDL、VerilogHDL等等。
COP2000实验仪当中的运算器由一片EPLD实现,采用的硬件描述语言是ABEL。
5、实验内容与步骤
COP2000实验仪运算器中的ALU是由一片XC9572-PLCC44实现,具体采用的硬件描述语言是ABEL,相关的ABEL程序见6。
要求在分析的基础上,用VHDL语言编程实现相同的运算器功能。
6、附录(运算器的ABEL程序清单)
ModuleALU
Declarations
ALU1interface(S2,S1,S0,CI,A,B->S,CO);//一位运算器
T7..T0functional_blockALU1;
DIn7..DIn0PIN25,26,27,28,29,34,33,36;
A_ENpin20;
W_ENpin22;
F_ENpin24;
ALU_CKpin18;
A7..A0nodeistype'reg';
W7..W0nodeistype'reg';
O7..O0PIN5,4,3,2,1,44,43,42istype'com';
X1pin37;
X0pin38;
RZpin13istype'reg';
RCypin14istype'reg';
RL0pin6istype'com';
RR7pin40istype'com';
CNPIN39;
S2PIN9;
S1PIN11;
S0PIN12;
CInnode;
Cynode;
C6..C0node;
Equations
[A7..A0]:
=[DIn7..DIn0];
[A7..A0].CLK=A_EN#ALU_CK;
[W7..W0]:
=[DIn7..DIn0];
[W7..W0].CLK=W_EN#ALU_CK;
CIn=RCy;//CinconnecttoRCyoutput
RL0=CN&CIn;
RR7=CN&CIn;
RZ:
=!
O7&!
O6&!
O5&!
O4&!
O3&!
O2&!
O1&!
O0;
RZ.CLK=F_EN#ALU_CK;
RCy:
=!
X1&!
X0&Cy#//directCout=Cy
X1&X0&Cy#//directCout=Cy
CN&!
X1&X0&O0#//shiftrightwithC
!
CN&!
X1&X0&RCy#//shiftrightwithoutC
CN&X1&!
X0&O7#//shiftleftwithC
!
CN&X1&!
X0&RCy;//shiftleftwithoutC
RCy.CLK=F_EN#ALU_CK;
T0.S1=S1;
T0.S0=S0;
T0.S2=S2;
T0.CI=S2&(!
F_OE&CIn#F_OE&PCIn);
T0.A=A0;
T0.B=W0;
O0=T0.S;
C0=T0.CO;
T1.S1=S1;
T1.S0=S0;
T1.S2=S2;
T1.CI=C0;
T1.A=A1;
T1.B=W1;
O1=T1.S;
C1=T1.CO;
T2.S1=S1;
T2.S0=S0;
T2.S2=S2;
T2.CI=C1;
T2.A=A2;
T2.B=W2;
O2=T2.S;
C2=T2.CO;
T3.S1=S1;
T3.S0=S0;
T3.S2=S2;
T3.CI=C2;
T3.A=A3;
T3.B=W3;
O3=T3.S;
C3=T3.CO;
T4.S1=S1;
T4.S0=S0;
T4.S2=S2;
T4.CI=C3;
T4.A=A4;
T4.B=W4;
O4=T4.S;
C4=T4.CO;
T5.S1=S1;
T5.S0=S0;
T5.S2=S2;
T5.CI=C4;
T5.A=A5;
T5.B=W5;
O5=T5.S;
C5=T5.CO;
T6.S1=S1;
T6.S0=S0;
T6.S2=S2;
T6.CI=C5;
T6.A=A6;
T6.B=W6;
O6=T6.S;
C6=T6