计算机组成原理科课设报告.docx
- 文档编号:6137245
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:35
- 大小:1.74MB
计算机组成原理科课设报告.docx
《计算机组成原理科课设报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理科课设报告.docx(35页珍藏版)》请在冰点文库上搜索。
计算机组成原理科课设报告
江苏大学
计算机组成原理课程设计报告
学院:
计算机学院
专业:
班级:
姓名:
学号:
指导老师:
设计时间:
2013.6.24~2013.7.2
第一天:
熟悉微程序的设计和调试方法
一、目标要求
1、掌握微程序的设计方法
2、熟悉利用调试软件运行、调试微程序的方法
3、完成指令MOV#0001H,R1的设计与调试
二、操作过程
1、连接实验设备
注意:
请在断电状态下连接调试电缆。
2、下载FPGA配置数据
从课程网站下载CPU.sof等文件,使用QuartusⅡProgrammer软件将CPU.sof下载到FPGA。
3、输入微程序
利用调试软件将微程序写入控存,微程序如下:
取指令微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
000
20080001
1
0
0
0
2
0
0
0
0
001
PCoe,ARce
001
00069002
0
0
0
0
1
2
1
1
0
002
ARoe′,RD,DRce′,PCinc
002
CC000003
6
3
0
0
0
0
0
0
0
003
DRoe,IRce
003
00000404
0
0
0
0
0
0
0
0
2
004
NOP
取原操作数为立即数的微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
004
00000A08
0
0
0
0
0
0
0
0
5
008
NOP
00B
2008000F
1
0
0
0
2
0
0
0
0
00F
PCoe,ARce
00F
00069C10
0
0
0
0
1
2
1
1
6
010
ARoe’,RD,DRce',PCinc
016
D0000006
6
4
0
0
0
0
0
0
0
006
DRoe,TRce
取目的操作数为寄存器寻址的微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
006
00000A18
0
0
0
0
0
0
0
0
5
018
NOP
018
54000007
2
5
0
0
0
0
0
0
0
007
GRSoe,Ace
MOV指令的微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
007
00000800
0
0
0
0
0
0
0
0
4
xxx
NOP
031
9400002D
4
5
0
0
0
0
0
0
0
02D
TRoe,Ace
02D
00300E2E
0
0
0
3
0
0
0
0
7
02E
SV,BM7
02E
68000000
3
2
0
0
0
0
0
0
1
000
Soe,GRSce
4、输入调机程序
指令是MOV#0001H,R1,首先翻译成机器码,再根据指令的编码规则,编码为07610001。
然后利用调试软件将指令马写入主存,地址从主存的0030H开始。
5、调试微程序。
利用调试软件”STEP”按钮控制微指令单步执行,执行结果如下:
6、分析微程序的执行结果
首先分析执行流程是否正确,理论上正确的执行顺序001→002→003→004→00B→00F→016→006→018→007→031→02D→02E→000,从图中可看出执行步骤与理论上是一致的,理论上执行结束后R1的值是0001,实际上最后R1的值确实是0001,因而执行的结果是正确的。
如果不正确,就要具体看每一步微流程,分析错误的原因。
第二天:
取操作数微程序设计与调试
一、设计目标
完成取原操作数和取目的操作数微程序的设计。
二、指令微程序设计
取原操作数微流程
取目的操作数微流程
取原操作数综合微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
004
00000A08
0
0
0
0
0
0
0
0
5
008
NOP
008
50000006
2
4
0
0
0
0
0
0
0
006
GRSoe,TRce
009
40080015
2
0
0
0
2
0
0
0
0
015
GRSoe,ARce
00A
2008000C
1
0
0
0
2
0
0
0
0
00C
PCoe,ARce
00B
2008000F
1
0
0
0
2
0
0
0
0
00F
PCoe,ARce
00C
0006900D
0
0
0
0
1
2
1
1
0
00D
ARoe’,RD,DRce',PCinc
00D
D400000E
6
5
0
0
0
0
0
0
0
00E
DRoe,Ace
00E
40700017
2
0
1
3
0
0
0
0
0
017
GRSoe,ADD,SV
00F
00069C10
0
0
0
0
1
2
1
1
6
010
ARoe’,RD,DRce',PCinc
010
D4000011
6
5
0
0
0
0
0
0
0
011
DRoe,Ace
011
20700017
1
0
1
3
0
0
0
0
0
017
PCoe,ADD,SV
012
C0080013
6
0
0
0
2
0
0
0
0
013
DRoe,ARce
013
00061014
0
0
0
0
1
2
0
1
0
014
ARoe’,RD,DRce'
014
C0080015
6
0
0
0
2
0
0
0
0
015
DRoe,ARce
015
C0061016
0
0
0
0
1
2
0
1
0
016
ARoe’,RD,DRce'
016
D0000006
6
4
0
0
0
0
0
0
0
006
DRoe,TRce
017
60080015
3
0
0
0
2
0
0
0
0
015
Soe,ARce
取目的操作数综合微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
006
00000A18
0
0
0
0
0
0
0
0
5
018
NOP
018
54000007
2
5
0
0
0
0
0
0
0
007
GRSoe,Ace
019
40080025
2
0
0
0
2
0
0
0
0
025
GRSoe,ARce
01A
2008001C
1
0
0
0
2
0
0
0
0
01C
PCoe,ARce
01B
2008002F
1
0
0
0
2
0
0
0
0
01F
PCoe,ARce
01C
0006901D
0
0
0
0
1
2
1
1
0
01D
ARoe’,RD,DRce',PCinc
01D
D400001E
6
5
0
0
0
0
0
0
0
01E
DRoe,Ace
01E
40700027
2
0
1
3
0
0
0
0
0
027
GRSoe,ADD,SV
01F
00069C20
0
0
0
0
1
2
1
1
6
020
ARoe’,RD,DRce',PCinc
020
D4000021
6
5
0
0
0
0
0
0
0
021
DRoe,Ace
021
20700027
1
0
1
3
0
0
0
0
0
027
PCoe,ADD,SV
022
C0080023
6
0
0
0
2
0
0
0
0
023
DRoe,ARce
023
00061024
0
0
0
0
1
2
0
1
0
024
ARoe’,RD,DRce'
024
C0080025
6
0
0
0
2
0
0
0
0
025
DRoe,ARce
025
C0061026
0
0
0
0
1
2
0
1
0
026
ARoe’,RD,DRce'
026
D4000007
6
5
0
0
0
0
0
0
0
007
DRoe,Ace
027
60080025
3
0
0
0
2
0
0
0
0
025
Soe,ARce
执行结果存入目的操作数的微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
02E
68000000
3
2
0
0
0
0
0
0
1
000
Soe,GRSce
02F
60030030
3
0
0
0
0
3
0
0
0
030
Soe,DRce
030
00062200
0
0
0
0
1
2
0
2
1
000
ARoe’,DRce',WR
三、测试指令、数据
以MOV#1011R3为例
第三天:
双操作数指令的微程序设计与调试
一、设计目标
完成ADD、ADDC、SUB、SUBB、CMP、AND、OR、XOR、TEST9条指令微程序的设计。
二、指令微程序设计
由上向下的微程序依次为ADD、ADDC、SUB、SUBB、CMP、AND、OR、XOR、TEST
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
032
98700E2E
4
6
1
3
0
0
0
0
0
7
TRoe,ADD,SV,PSWce
033
98B00E2E
4
6
2
3
0
0
0
0
0
7
TRoe,ADDC,SV,PSWce
034
98F00E2E
4
6
3
3
0
0
0
0
0
7
TRoe,SUB,SV,PSWce
035
99300E2E
4
6
4
3
0
0
0
0
0
7
TRoe,SUBB,SV,PSWce
036
98C00200
4
6
3
0
0
0
0
0
0
1
TRoe,SUB,PSWce
037
99700E2E
4
6
5
1
0
0
0
0
0
7
TRoe,AND,SV,PSWce
038
99B00E2E
4
6
6
2
0
0
0
0
0
7
TRoe,OR,SV,PSWce
039
9A300E2E
4
6
8
3
0
0
0
0
0
7
TRoe,XOR,SV,PSWce
03A
99400200
4
6
5
0
0
0
0
0
0
1
TRoe,AND,PSWce
三、测试指令、数据
OR#0110+0111
CMP#01001011
XORRO#0001
AND#21021011
第四天:
单操作数运算和移位指令的微程序设计与调试
一、设计目标
完成单操作数运算指令INC、DEC、NOT和7条移位指令微程序的设计。
二、指令微程序设计
由上向下的微程序依次为INC、DEC、NOT和七条移位指令SAR、SHL、SHR、ROL、ROR、RCL、RCR
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
071
1A700E2E
0
6
9
3
0
0
0
0
7
02E
INC,SV,PSWce
072
1AB00E2E
0
6
A
3
0
0
0
0
7
02E
DEC,SV,PSWce
073
19F00E2E
0
6
7
3
0
0
0
0
7
02E
NOT,SV,PSWce
061
18100E2E
0
6
0
1
0
0
0
0
7
02E
PSWce,SR
062
18200E2E
0
6
0
2
0
0
0
0
7
02E
PSWce,SL
063
18100E2E
0
6
0
1
0
0
0
0
7
02E
PSWce,SR
064
18200E2E
0
6
0
2
0
0
0
0
7
02E
PSWce,SL
065
18100E2E
0
6
0
1
0
0
0
0
7
02E
PSWce,SR
066
18200E2E
0
6
0
2
0
0
0
0
7
02E
PSWce,SL
067
18100E2E
0
6
0
1
0
0
0
0
7
02E
PSWce,SR
三、测试指令、数据
测试指令INC0035H指令编码023A00350035→1010
运行结果:
测试指令DEC0035H指令编码025A00350035→1010
运行结果:
测试指令NOT0035H指令编码027A00350035→1010
运行结果:
测试指令SAR0035H指令编码003A00350035→1234
运行结果:
测试指令SHL0035H指令编码005A00350035→1234
运行结果:
测试指令SHR0035H指令编码007A00350035→1234
运行结果:
测试指令ROL0035H指令编码009A00350035→1234
运行结果:
测试指令ROR0035H指令编码00BA00350035→1234
运行结果:
测试指令RCL0035H指令编码00DA00350035→1234
运行结果:
测试指令RCR0035H指令编码00FA00350035→1234
运行结果:
第五、六天:
子程序调用、堆栈和转移指令的微程序设计与调试
一、设计目标
完成CALL、RET、PUSH、POP和9条转移指令的微程序的设计
二、指令微程序设计
9条转移指令,由上向下依次为JC、JNC、JO、JNO、JZ、JNZ、JS、JNS、JMP
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
068
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
069
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
06A
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
06B
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
06C
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
06D
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
06E
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
06F
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
070
A4000200
5
1
0
0
0
0
0
0
1
000
ARoe,PCce
CALL指令
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
07A
000000D0
0
0
0
0
0
0
0
0
0
0D0
0D0
F40000D1
7
5
0
0
0
0
0
0
0
0D1
SPoe,Ace
0D1
B2B000D2
5
4
A
3
0
0
0
0
0
0D2
DEC,SV,ARoe,TRce
0D2
7C0800D3
3
7
0
0
2
0
0
0
0
0D3
Soe,ARce,SPce
0D3
200300D4
1
0
0
0
0
3
0
0
0
0D4
PCoe,DRce
0D4
84052200
4
1
0
0
1
1
0
2
1
000
ARoe’,DRoe’,WR,TRoe,PCce
RET指令
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
05A
0000003C
0
0
0
0
0
0
0
0
0
03C
03C
F408003D
7
5
0
0
2
0
0
0
0
03D
SPoe,Ace,ARce
03D
0276103E
0
0
9
3
1
2
0
1
0
03E
INC,SV,ARoe',RD,DRce'
03E
C400003F
6
1
0
0
0
0
0
0
0
03F
DRoe,PCce
03F
7C000200
3
7
0
0
0
0
0
0
1
000
Soe,Spce
PUSH指令
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
078
0000000C0
0
0
0
0
0
0
0
0
0
0C0
0C0
F40000C1
7
5
0
0
0
0
0
0
0
0C1
SPoe,Ace
0C1
02B000C2
0
0
A
3
0
0
0
0
0
0C2
DEC,SV
0C2
7C0800C3
3
7
0
0
2
0
0
0
0
0C3
Soe,SPce,ARce
0C3
00052200
0
0
0
0
1
1
0
2
1
000
ARoe’,DRoe’,WR
POP指令
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
079
000000C8
0
0
0
0
0
0
0
0
0
0C8
0C8
B00000C9
5
4
0
0
0
0
0
0
0
0C9
ARoe,TRce
0C9
F40800CA
7
5
A
0
0
0
0
0
0
0CA
SPoe,Ace,ARce
0CA
027610CB
0
0
9
0
1
2
0
1
0
0CB
ARoe’,RD,DRce’,INC,SV
0CB
800800CC
4
0
0
0
2
0
0
0
0
0CC
TRoe,ARce
0CC
7C052200
3
7
0
0
1
1
0
2
1
000
Soe,SPce,ARoe’DRoe’,WR
三、测试指令、数据以及结果分析
测试指令MOVE#0001H,R1指令编码07610001
MOVE#0010H,R207620010
CMPR1,R21822
JC0045H011A0045
运行结果:
结果分析:
该测试指令一共四条,前三条是为了得到标志位SZOC=0001,用来达到执行JC指令的条件。
前三条指令已经在以上的测试中得到了正确的结果,因此只要分析JC指令,从执行的结果看,执行步骤与理论的执行步骤007→068→000是一致的,并且在第50步PC=0045,说明应经正确实现了转移,证明该指令是正确的。
测试指令INC0035H指令编码023A00350035→FFFF
JO0045H015A0045
运行结果:
结果分析:
该测试指令一共两条,第一条是为了得到标志位SZOC=0000,用来达到执行JC指令的条件。
理论上的执行步骤是001→002→003→006→01B→01F→024→025→026→007→071→02F→030→000→001→002→003→006→01B→01F→024→025→026→007→06A→000,实际执行步骤与这个是一致的,再看执行过程,当INC指令执行后,FFFF加1后,溢出,达到执行JO的条件,再看第26步,PC=0045,说明应经正确实现了转移,证明该指令是正确的。
测试指令NOT0035H指令编码027A00350035→0101
JZ0045H019A0045
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 理科 报告