计算机组成原理
实验报告
评语:
成绩
教师:
年月日
班级:
学号:
姓名:
地点:
时间:
计算机组成原理与体系结构课程设计
基本模型机设计与实现
一.实验目的
1.深入理解基本模型计算机的功能、组成知识;
2.深入学习计算机各类典型指令的执行流程;
3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM的配置方法。
4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。掌握微程
序的设计方法,学会编写二进制微指令代码表。
6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
二.实验原理
1.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。实验中,计算机数据通路的控制将由微过程控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2.指令格式
(1)指令格式
采用寄存器直接寻址方式,其格式如下:
7654 
32
10
功能
OP-CODE
rs
rd
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
Rs或rd
选定的寄存器
00
01
10
R0
R1
R2
助记符
机器指令码
Addr地址码
功能说明
IN
ADD  addr
STA  addr
OUT  addr
JMP  addr
00H
10H  XX H
20H          XX H
30H          XX H
40H        XX H
INPUT”中的数据→R0
R0+[addr] ->R0
R0 -> [addr]
[addr] -> BUS
addr→PC
其中IN为单字长(8位二进制),其余为双字长指令,XX H为addr对应的十六进制地址码。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
图6-1  数据通路框图
根据以上要求设计数据通路框图,如图5-1所示。
6-1  24位微代码定义:
24
23
22
21
20
19
18
17
16
151413
121110
987
6
5
4
3
2
1
S3
S2
S1
S0
M
Cn
WE
A9
A8
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
表6-2  A、BC各字段功能说明:
A字段
B字段
C字段
15
14
13
选择
12
11
10
选择
9
8
7
选择
0
0
0
0
0
0
0
0
0
0
0
1
LDRi
0
0
1
RS-B
0
0
1
P1
0
1
0
LDDR1
0
1
0
0
1
0
0
1
1
LDDR2
0
1
1
0
1
1
1
0
0
LDIR
1
0
0
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU-B
1
0
1
LDAR
1
1
0
LDAR
1
1
0
PC-B
1
1
0
LDPC
24位微代码中各信号的功能
(1) uA5—uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的微地址。
(2) S3、S2SlS0:由微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16种逻辑操作中的某一种操作。
(3) M:微程序控制输出的ALU操作方式选择信号端。M0执行算术操作;M=l执行逻辑操作。
(4) Cn:微程序控制器输出的进位标志信号,Cn0表示ALU运算时最低位有进位,Cn1则表示无进位。(5)WE:微程序控制器输出的RAM控制信号。当/CE0时,如WE0为存储器读;如WE1为存储器写。(6) A9A8——译码后产生CS0CS1CS2信号,分别作为SW_BRAMLED的选通控制信号。 (7) A字段(151413)——译码后产生与总线相连接的各单元的输入选通信号(见表6-1)。
(8) B字段(121110)——译码后产生与总线相连接的各单元的输出选通信号。
(9) C字段(987)——译码后产生分支判断测试信号P(1)~P(4)和LDPC信号。
系统涉及到的微程序流程见图6-2。当执行“取指令”微指令时,该微指令的判断测试字段为P(1)测试。由于“取指令”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支(见图6-2左图)。用指令寄存器的高4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定地址单元。
控制台操作为P(4)测试(见图6-2右图),它以控制台信号SWBSWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控制存储器的一个微地址单元,随意填写。注意:微程序流程图上的微地址为8进制!
当全部微程序设计完毕后,应将每条微指令代码化,表6-2即为图6-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
表6-2二进制微代码表
c++课程设计报告
微地址
微指令
S3 S2 S1 S0 M CN WE A9 A8
A
B
C
UA5UA0
00
018110
000000011
000
000
100
010000
01
00ED82
000000001
110
110
110
000010
02
00C048
000000001
100
000
001
001000
03
00E004
000000001
110
000
000
000100
04
00B005
000000001
011
000
000
000101
05
01A206
000000011
010
001
000
000110
06
919A01
100100011
001
101
000
000001
07
00E00D
000000001
110
000
000
001101
10
001001
000000000
001
000
000
000001
11
00ED83
000000001
110
110
110
000011
12
00ED87
000000001
110
110
110
000111
13
00ED8E
000000001
110
110
110
001110
14
00ED96
000000011
110
110
110
010110
15
038201
00000011
000
001
000
000001
16
00E00F
000000001
110
000
000
001111
17
00A015
000000001
010
000
000
010101
20
01ED92
000000011
110
110
110
010010
21
01ED94
000000011
110
110
110
010100
22
00A010
000000001
010
000
000
010000
23
008001
000000001
000
000
000
000001
24
062011
000001100
010
000
000
010001
25
070A01
000001110
000
101
000
000001
26
00D181
000000001
101
000
110
000001
指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试“P(1)”,通过节拍脉冲T4的控制,以便识别所要求的操作。
指令译码器: 根据指令中的操作码强置微控制器单元的微地址,使下一条微指令指向相应的微程序首地址。
实验中LCD液晶显示屏可以用来显示模型机CPU中各组成单元的内容。将B100_C.sof文件下载到实验台后,按系统复位键,LCD液晶显示屏即显示CPU中各组成单元的内容。其功能说明如下:
LCD液晶显示屏功能说明
名称
 
名称
IN
输入单元INPUT
DR1
暂存器DR1
OUT
输出单元OUTPUT
DR2
暂存器DR2
ALU
算术逻辑单元
PC
程序计数器
BUS
内部数据总线
AR
地址寄存器
R0
寄存器R0
RAM
程序/数据存储器
R1
寄存器R1
IR
指令寄存器
R2
寄存器R2
MC
微程序控制器
6-3 模型计算机电路原理图
三.实验步骤
1.微程序的输入:根据表6-2所对应的二进制微代码,编辑LPM_ROM配置文件ROM_5.mif,并将其保存在与实验电路cpu5A.sof工程所在的文件夹中,与实验电路cpu5A.sof一同编译后,得到下载文件cpu5A.sof。下载配置文件cpu5A.sof下载到实验系统。实验板上的时钟clock0选择输入频率为1.5MHz。图6-3是示例原理图,详见cpu5A.sof
2.输入模型机的程序
第一组双数运算SUB/ADDC/AND/OR/XOR
RAM中的指令
地址
内容
助记符
说明
00
00
IN R0
INPUT→R0
01
10
SUB [0CH]
R0-[0CH]→R0
02
0C
03
20
ADDC [0CH]
R0+[0CH]+1R0
04
0C
05
30
AND [0CH]
R0[0CH]→R0
06
0C
07
40
OR [0CH]
R0+[0CH]→R0
08
0C
09
50
XOR [0CH]
R0[0CH]→R0
0A
0C
0B
00
0C
11
ROM中的指令
10 SUB
20 ADDC
30 AND
40 OR
50 XOR
11
01ED83
12
01ED97
13
01ED9B
14
01ED9F
15
01EDA3
03
00E004
27
00E018
33
00E01C
37
00E020
43
00E024
04
00B005
30
00B019
34
00B01D
40
00B021
44
00B025
05
01A206
31
01A21A
35
01A21E
41
01A222
45
01A226
06
619A01
32
959A01
36
B99A01
42
E99A01
46
699A01
第二组单数运算NOT/INC/CLR/A+A/DEC
ROM中的指令
10 NOT
20 INC
30 CLR
40 A+A
50 DEC
11
01A206
12
01A217
13
01A218
14
01A219
15
01A21A
06
099A01
27
059A01
30
399A01
31
C19A01
32
F59A01
RAM中的指令
地址
内容
助记符
说明
00
00
IN R0
INPUT→R0
01
10
NOT R0
^R0→R0
02
20
INC R0
R0+1R0
03
30
CLR R0
0→R0
04
40
A+A R0
2R0→R0
05
50
DEC R0
R0-1R0
第三组控制逻辑MOV/CMP/JB/INC/OUT
RAM的指令
地址
内容
助记符
说明
L0      00
80
IN R0
INPUT→R0
01
91
MOV R1,1
1R1
02
01
03
92
MOV R2,0
0R2
04
00
L1      05
A1
CMP R0,R1
R0-R1R1
06
B0
JB L2
(L2)→PC
07
0D
08
C6
ADD R1,R2
R1+R2→R2
09
D1
INC R1
R1+1→R1
0A
D1
INC R1
R1+1→R1
0B
E0
JMP L1
(L1)→PC
0C
05
L2      0D
F2
OUT R2
R2→OUTPUT
0E
E0
JMP L0
(L0)→PC
0F
00
ROM的指令
MOV
CMP
JB
INC
OUT
11
01ED83
12
01A204
13
01ED95
15
01A416
17
010401
03
009001
04
01B405
25
0180C7
26
C9BA1A
05
618B41
07
018001
32
919B41
27
FC=1 00D181
07
FC=0 018001
4.实验结果
第一组:R0=23,[ADDR]=11
SUB:12 ADDC:24 AND:00 OR:11 XOR:00
第二组:R0=11
NOT:EE INC:EF CLR:00 A+A:00 DEC:FF
第三组:R0=4,R1=1,R2=0

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。