计算机组成原理课程设计报告006.docx
- 文档编号:4602917
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:28
- 大小:295.07KB
计算机组成原理课程设计报告006.docx
《计算机组成原理课程设计报告006.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告006.docx(28页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计报告006
计算机组成原理课程设计报告
专业名称:
计算机科学与技术
班级学号:
0801
学生姓名:
指导教师:
设计时间:
2010年7月7日——2010年7月日
第一天熟悉微程序的设计和调试方法
一、设计目标
1、掌握微程序的设计方法
2、熟悉利用调试软件UniDebugger运行、调试微程序的方法
二、微程序设计方法
写微程序包括3个方面,即取指令微程序,取操作数微程序和指令执行微程序。
微程序设计的一般方法:
(1)根据数据通路画出取指令微流程、取操作数微流程;根据每条指令的功能画出指令的执行微流程。
(2)按微指令格式及微命令的编码,根据微流程的每一步填写微指令F0-F7字段的内容。
(3)根据微流程的每一步之间是否有转移以及何种转移,参照表1-4,填写微指令F8字段和F9字段。
以MOV#1234H,R1为例:
1)取指令微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
001
20080006
1
0
0
0
2
0
0
0
0
002
PCoe,ARce
002
00069003
0
0
0
0
1
2
1
1
0
003
ARoe’,RD,DRce’,PCinc
003
CC000404
6
3
0
0
0
0
0
0
2
004
DRoe,IRce
2)取源操作数为立即数的微程序
微地址(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
0008000F
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
3)取目的操作数为寄存器寻址的微程序
微地址(H)
微指令(H)
微指令字段(H)
微命令
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
006
20080006
0
0
0
0
0
0
0
0
5
018
NOP
018
00069003
2
5
0
0
5
0
0
0
0
007
GRSoe,Ace
4)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
PCoe,ARce
044
00000E46
0
0
0
0
0
0
0
0
7
046
ARoe’,RD,DRce’,PCinc
046
88000000
4
4
0
0
0
0
0
0
0
000
DRoe,IRce
三、微程序调试的方法
1.准备工作
将试验仪的通信电缆和下载电缆分别连接电脑的RS-232串行接口和打印机接口。
接通试验仪电源。
2.下载FPGA配置数据
利用iMPACT软件将CPU.bit下载到FPGA。
3.输入微程序
利用调试软件UniDebugger将微程序写入控存。
(1)设置实验方式和观察信号。
(2)下载微程序文件day1.m19.该文件包含取指令微程序部分取操作数微程序和MOV指令执行阶段微程序
4.调试微程序
为了分析微程序是否正确,首先通过查看微指令流程判断BM和NC设置是否正确。
如果微指令执行次序不正确,那就要分析原因,检查BN和NC设置是否正确、检查uAR的各个输入信号的值是否正确,如IR、NA等。
如果伪指令执行次序是正确的,再查看指令的运行结果。
如果结果不对,就需要进一步分析每一条微指令。
分析的方法是对微指令的每一条微命令,查看相应微操作前后相关模块的数据变化是否与微流程一致。
第二天取操作数微程序的设计和调试
一、设计目标
完成取源操作数和取目的操作数的微程序。
二、取操作数微流程
00000A08
D0000006
00061016
50000006
C0080015
60080015
40080015
00061214
20700017
40700017
C0080013
D4000011
D400000E
A0069C10
0006900D
0
2008000F
0
0
0
0
0
0
0
0
0
0
0
016
015
015
015
014
017
013
011
017
00E
00D
0
00F
00C
2008000C
00000A18
026
D4000007
00061026
54000007
C0080025
60080025
40080025
00061024
20700027
40700027
D4000021
C0080023
D400001E
20089C20
0
0006901D
2008001F
025
025
025
027
024
023
027
021
01E
01D
01F
01C
0
0
0
0
0
0
0
0
0
0
0
0
2008001C
三、测试程序、数据及运行结果
格式如下:
1、测试内容:
立即寻址、寄存器寻址
测试指令(或程序):
MOV#0008H,R1
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
07610008
MOV#0008H,R1
运行结果及分析:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→016→006→018→007→044→046→000,是正确的。
在003的微指令执行后,下一步IR=0761,说明指令是正确的;在016的微指令执行后,TR=0008,说明取源操作数是正确的;在018的微指令执行后,A=0000,说明取目的操作数是正确的。
指令执行前R1的内容为0000,指令执行后GRS变为0008,说明结果是正确的。
(注:
以下第2、3两条指令,在第1条指令的基础上继续执行。
)
2、测试内容:
直接寻址、寄存器间接寻址
测试指令(或程序):
MOV(R1),0010H
机器码:
内存地址(H)
机器码(H)
汇编指令
0002
053A0010
MOV(R1),0010H
运行结果及分析:
指令执行前:
指令执行后:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→009→015→016→006→01B→01F→024→025→026→007→044→047→072→000,是正确的。
在003的微指令执行后,下一步IR=053A为当前执行的指令,说明指令是正确的;寄存器R1的值为0008,由于是寄存器间接寻址,所以0008是源操作数的地址,而0008单元的内容为1111,在016的微指令执行后,TR=1111,说明取源操作数是正确的;在026的微指令执行后,A的值为0010单元的内容:
FFFF,说明取目的操作数是正确的。
指令执行前0010单元的内容为FFFF,指令执行后内容变为1111,说明结果是正确的。
3、测试内容:
寄存器变址寻址、间接寻址
测试指令(或程序):
MOV0001H(R1),(0010)H
机器码:
内存地址(H)
机器码(H)
汇编指令
0002
063900010010
MOV0001H(R1),(0010)H
运行结果及分析:
执行指令前:
执行指令后:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00A→00C→00D→00E→017→015→016→006→01B→01F→022→023→024→025→026→007→044→047→072→000,是正确的。
在003的微指令执行后,下一步IR=0639,说明指令是正确的;在016的微指令执行后,TR=,说明取源操作数是正确的;在026的微指令执行后,A的值为单元的内容:
,说明取目的操作数是正确的。
指令执行前0012单元的内容为2222,指令执行后内容变为1234,说明结果是正确的。
4、测试内容:
立即数寻址、相对寻址
测试指令(或程序):
MOV#1234H,+0010H
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
077812340010
MOV#1234H,+0010
运行结果及分析:
指令执行前:
指令执行后:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→016→006→01B→01F→020→021→027→025→026→007→044→047→072→000,是正确的。
在003的微指令执行后,下一步IR=0778为当前执行指令,说明指令是正确的;在016的微指令执行后,TR=1234,说明取源操作数是正确的;由于目的操作数是相对寻址,所以操作数的地址为D+PC=0010+3=0013,即在026的微指令执行后,A的值为0013单元的内容:
FFFF,说明取目的操作数是正确的。
指令执行前0013单元的内容为FFFF,指令执行后内容变为1234,说明结果是正确的。
第三天双操作数指令的微程序设计和调试
一、设计目标
完成ADD、ADDC、SUB、SUBB、CMP、AND、OR、XOR、TEST9条指令的微程序设计。
二、运算指令微程序入口地址
指令助记符
指令编码
入口地址(H)
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
MOVsrc,dst
0
0
0
0
0
1
源地址码
目的地址码
044
ADDsrc,dst
0
0
0
0
1
0
源地址码
目的地址码
048
ADDCsrc,dst
0
0
0
0
1
1
源地址码
目的地址码
04C
SUBsrc,dst
0
0
0
1
0
0
源地址码
目的地址码
050
SUBBsrc,dst
0
0
0
1
0
1
源地址码
目的地址码
054
CMPsrc,dst
0
0
0
1
1
0
源地址码
目的地址码
058
ANDsrc,dst
0
0
0
1
1
1
源地址码
目的地址码
05C
ORsrc,dst
0
0
1
0
0
0
源地址码
目的地址码
060
XORsrc,dst
0
0
1
0
0
1
源地址码
目的地址码
064
TESTsrc,dst
0
0
1
0
1
0
源地址码
目的地址码
068
INCdst
0
0
0
0
0
0
1
0
0
0
1
目的地址码
0A4
DECdst
0
0
0
0
0
0
1
0
0
1
0
目的地址码
0A8
NOTdst
0
0
0
0
0
0
1
0
0
1
1
目的地址码
0AC
三、运算类指令微程序
微地址(H)
微指令(H)
微命令
BM
NA
注释
007
00000800
NOP
4
xxx
指令执行入口
048
9870006F
TRoe,ADD,SV,PSWce
0
06F
ADD
054
9930006F
TRoe,SUBB,SV,PSWce
0
06F
SUBB
050
98F0006F
TRoe,SUB,SV,PSWce
0
06F
SUB
068
99400000
TRoe,AND,PSWce
0
000
TEST
06F
00000E70
NOP
7
070
回送结果入口
070
68000000
Soe,GRSce
0
000
结果送入寄存器
071
60030072
Soe,Drce
0
072
结果送入DR
072
00052400
Droe’,Aroe’,WR
0
000
结果送入主存
四、测试程序、数据及运行结果
1、测试内容:
直接寻址、相对寻址
测试指令(或程序):
ADD0010H,+0002H
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
0B5800100002
ADD0010H,+0002H
运行结果及分析:
指令执行前:
指令执行前
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→014→015→016→006→01B→01F→020→021→027→025→026→007→048→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=0B58,说明指令是正确的;在016的微指令执行后,TR=0020是0010单元的内容,说明取源操作数是正确的;在026的微指令执行后,A的值为0005(D+PC=0002+003)单元的内容:
0001,说明取目的操作数是正确的。
指令执行前,0004单元的内容为0001,指令执行后,内容变为0021(即0001+0020),说明结果是正确的。
2、测试内容:
立即寻址、间接寻址
测试指令(或程序):
SUB#1111H,(0010)
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
137912340010
SUB#1111H,(0010)
运行结果及分析:
指令执行前:
指令执行后:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→016→006→01B→01F→022→023→024→025→026→007→050→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=1379,说明指令是正确的;在016的微指令执行后,TR=1111为0020单元的内容,说明取源操作数是正确的;在026的微指令执行后,A的值为0020单元的内容:
2211,说明取目的操作数是正确的。
指令执行前0004单元的内容为2211,指令执行后内容变为1100(即2211-1111)说明结果是正确的。
3、测试内容:
SUBB直接寻址、寄存器间接寻址
测试指令(或程序):
MOV#2222H,R1
SUBB(0010)H,R1
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
07612222
MOV#2222H,R1
内存地址(H)
机器码(H)
汇编指令
0002
17490010
ADD(0010)H,(R1)
运行结果及分析:
分析:
指令1:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→016→006→018→007→044→046→000,是正确的。
在003的微指令执行后,下一步IR=0761,说明指令是正确的;在016的微指令执行后,TR=2222,说明取源操作数是正确的;在018的微指令执行后,A=0000,说明取目的操作数是正确的。
指令执行前R1的内容为0000,指令执行后GRS值变为2222,说明结果是正确的。
指令2:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→012→013→014→015→018→007→054→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=1749,说明指令是正确的;在016的微指令执行后,TR=1111是0010单元的内容,说明取源操作数是正确的;在018的微指令执行后,A=2222,说明取目的操作数是正确的。
指令执行前R1=2222,指令执行后内容变为1110(即2222-1111),说明结果是正确的。
第四天单操作数运算和移位指令的微程序设计与调试
一、设计目标
完成单操作数运算指令INC、DEC、NOT和7条位移指令微程序的设计。
二、运算指令微程序入口地址
指令助记符
指令编码
入口地址(H)
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
SARdst
0
0
0
0
0
0
0
0
0
0
1
目的地址码
092
SHLdst
0
0
0
0
0
0
0
0
0
1
0
目的地址码
094
SHRdst
0
0
0
0
0
0
0
0
0
1
1
目的地址码
096
ROLdst
0
0
0
0
0
0
0
0
1
0
0
目的地址码
098
RORdst
0
0
0
0
0
0
0
0
1
0
1
目的地址码
09A
RCLdst
0
0
0
0
0
0
0
0
1
1
0
目的地址码
09C
RCRdst
0
0
0
0
0
0
0
0
1
1
1
目的地址码
09E
INCdst
0
0
0
0
0
0
1
0
0
0
1
目的地址码
0A4
DECdst
0
0
0
0
0
0
1
0
0
1
0
目的地址码
0A8
NOTdst
0
0
0
0
0
0
1
0
0
1
1
目的地址码
0AC
三、运算类指令微程序
微地址(H)
微指令(H)
微命令
BM
NA
注释
007
000008A4
NOP
4
0A4
指令执行入口
092
1810006F
SR,PSWce
SAR
094
1810006F
SR,PSWce
SHL
096
1810006F
SR,PSWce
SHR
098
1820006F
SL,PSWce
ROL
09A
1820006F
SL,PSWce
ROR
09C
1820006F
SL,PSWce
RCL
09E
1820006F
SL,PSWce
RCR
0A4
1A70006F
INC,SV,PSWce
INC
0A8
1AB0006F
DEC,SV,PSWce
DEC
0AC
19F0006F
NOT,SV,PSWce
NOT
06F
00000E70
NOP
7
070
存结果
070
68000000
Soe,GRSce
0
000
结果送入寄存器
071
60030072
Soe,Drce
0
072
结果送入DR
072
00052400
Droe’,Aroe’,WR
0
000
结果送入主存
四、测试程序、数据及运行结果
测试内容:
立即寻址、寄存器寻址
测试指令(或程序):
MOV#0020H,R1
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
07610020
MOV#0020H,R1
运行结果及分析:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→016→006→018→007→044→046→000,是正确的。
在003的微指令执行后,下一步IR=0761,说明指令是正确的;在016的微指令执行后,TR=0020,说明取源操作数是正确的;在018的微指令执行后,A=0000,说明取目的操作数是正确的。
指令执行前R1的内容为0000,指令执行后GRS变为0020,说明结果是正确的。
(注:
以下第1、2两条指令,在第1条指令的基础上继续执行。
)
1、测试内容:
寄存器寻址
测试指令(或程序):
SHLR1
机器码:
内存地址(H)
机器码(H)
汇编指令
0002
0041
SHLR1
运行结果及分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→006→018→007→094→06F→070→000,是正确的。
在003的微指令执行后,下一步IR=0041,说明指令是正确的;在018的微指令执行后,A=0020为寄存器R1的内容,说明取目的操作数是正确的。
指令执行前R1内容为0020,指令执行后R1内容变为0010即GRS=0010,说明结果是正确的。
2、测试内容:
寄存器间接寻址
测试指令(或程序):
SHR(R1)
机器码:
内存地址(H)
机器码(H)
汇编指令
0002
0069
SHR(R1)
运行结果及分析:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→006→019→025→026→007→096→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=0069,说明指令是正确的;在026的微指令执行后,A=2000为单元0020的内容,说明取目的操作数是正确的。
指令执行前单元0020内容为2000,指令执行后单元0020内容变为4000,说明结果是正确的。
3、测试内容:
寄存器寻址
测试指令(或程序):
ROL+0002H
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
00980002
ROL+0002H
运行结果及分析:
指令执行前:
指令执行后:
分析:
与微流程分析对照,微指令的执行次序为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 报告 006