计算机组成原理课程设计江苏大学新颖版.docx
- 文档编号:25691298
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:24
- 大小:1.33MB
计算机组成原理课程设计江苏大学新颖版.docx
《计算机组成原理课程设计江苏大学新颖版.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计江苏大学新颖版.docx(24页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计江苏大学新颖版
江苏大学
计算机组成原理课程设计报告
专业名称:
网络工程
班级学号:
3130610031
学生姓名:
张杰
指导教师:
胡广亮
设计时间:
2013年6月24日—2013年7月2日
第一天:
熟悉微程序的设计和调试方法
一、设计目标
1、掌握微程序的设计方法
2、熟悉利用调试软件运行、调试微程序的方法
二、操作提示
1、连接实验设备
注意:
请在断电状态下连接调试电缆。
2、下载FPGA配置数据
从课程网站下载CPU.sof等文件,使用QuartusIIProgrammer软件将CPU.sof下载到
FPGA。
3、输入微程序
利用调试软件将微程序写入控存,微程序如下。
取指令微程序
取源操作数为立即数的微程序
取目的操作数为寄存器寻址的微程序
MOV指令的微程序(目的数寄存器寻址)
4、输入调机程序
今天的将调机程序就是一条指令:
“MOV#0001H,R1”。
首先将指令翻译成机器码,根
据指令的编码规则,该指令的编码是:
07610001。
然后利用调试软件将指令码写入主存,
地址从主存的0030H开始。
5、调试微程序。
利用调试软件“Step”按钮控制微指令单步执行,执行结果如图2.3所示
2.3例2.1MOV指令的单步运行跟踪数据
6、分析微程序的执行结果,一般方法如下:
首先分析微程序执行流程是否正确,根据前面指令微流程的设计,理论上该指令微程序
的执行顺序应该是001→002→003→004→00B→00F→016→006→018→007→031→02D→
02E→000,通过调试软件的执行结果图2.3可以看出,该指令微程序的微指令次序是正确的。
如果执行的微指令次序不正确,那就要分析原因,检查BM和NC设置是否正确、检查uAR
的各个输入信号的值是否正确,如IR、NA等。
然后分析指令的运行结果。
理论上本条测试指令执行完后,R1的值应该是0001。
通过
调试软件的执行结果图2.3可以看出,指令执行结果是正确的。
如果结果不对,就需要进一
步分析每一条微指令。
分析的方法是针对微指令的每一条微命令,查看相应微操作前后相关
模块的数据变化是否与指令微流程一致。
下面举个例子说明如何分析每条微指令的。
图2.3的微地址为000B(uAR=000B)的控存单元所对应的内容为2008000F,即微指
令为2008000F,所代表的微操作是:
PCoe,ARce,即PC的内容送IB、IB的内容送AR,
理论上的正确结果应该是IB=0031,AR=0031;通过图2.3的000B单元微指令的执行结果可
以看出,IB的数据由上一条微指令的结果0000→0031,AR的数据由上一条微指令的结果
0030→0031,说明本条微指令执行结果是正确。
从上面的分析可以看出,要想检查运行结果是否正确,关键是要清楚理论上正确的结果
是什么。
这就要求实验者对指令的微程序流程非常清楚,从而达到了理解计算机内部信息流
动过程、掌握计算机工作原理的目的。
所以实验者应重视实验数据的分析工作,否则就失去
了实验的意义。
1、测试内容:
立即数寻址、寄存器寻址
测试指令(或程序):
MOV#0001H,R1
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
07610001
MOV#0001H,R1
运行结果:
第二天取操作数微程序的设计和调试
一、设计目标
设计并调试取操作数的微程序。
二、取操作数微流程
取目的操作数流程:
三、测试程序、数据及运行结果
格式如下:
1、测试内容:
间接寻址、寄存器寻址
测试指令(或程序):
MOF(0048)R1
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
0721004800580001
MOF(0048)R1
运行结果:
四、设计中遇到的问题及解决办法
在设计过程中开始对调试程序的运行不熟悉,不是很了解了此程序的运行。
在操作过程中,粗心导致了输入机器码的错误,或者是所在位置错误,重新输入解决了此问题。
我详细地了解了它的整个过程和对于每一步的分析和验证,对微程序设计有了更深入的了解。
第三天双操作数指令的微程序设计与调试
一、设计目标
设计并调试运算指令的微程序。
二、双操作数指令微程序入口地址
指令助记符
指令编码
入口地址(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
源地址码
目的地址码
031
ADDsrc,dst
0
0
0
0
1
0
源地址码
目的地址码
032
ADDCsrc,dst
0
0
0
0
1
1
源地址码
目的地址码
033
SUBsrc,dst
0
0
0
1
0
0
源地址码
目的地址码
034
SUBBsrc,dst
0
0
0
1
0
1
源地址码
目的地址码
035
CMPsrc,dst
0
0
0
1
1
0
源地址码
目的地址码
036
ANDsrc,dst
0
0
0
1
1
1
源地址码
目的地址码
037
ORsrc,dst
0
0
1
0
0
0
源地址码
目的地址码
038
XORsrc,dst
0
0
1
0
0
1
源地址码
目的地址码
039
TESTsrc,dst
0
0
1
0
1
0
源地址码
目的地址码
03A
三、双操作数指令执行微程序
微地址(H)
微指令(H)
微命令
BM
NA
注释
007
00000800
4
044
指令执行入口
048
9870006F
TRoe,ADD,PSWce,SV
0
06F
ADD
04C
98B0006F
TRoe,ADDC,PSWce,SV
0
06F
ADDC
050
98F0006F
TRoe,SUB,PSWce,SV
0
06F
SUB
054
9930006F
TRoe,SUBB,PSWce,SV
0
06F
SUBB
058
98C00000
TRoe,CMP,PSWce
0
000
CMP
05C
9970006F
TRoe,AND,PSWce,SV
0
06F
AND
060
9980006F
TRoe,OR,PSWce,SV
0
06F
OR
064
9A30006F
TRoe,XOR,PSWce,SV
0
06F
XOR
068
99400000
TRoe,AND,PSWce
0
000
TEST
06F
00000E70
NOP
0
070
回送
四、测试程序、数据及运行结果
1、测试内容:
立即寻址,直接寻址,间接寻址,寄存器寻址,寄存器间接寻址
测试程序:
MOV(0048H)R1
TEST0048HR1
AND#0078H(R0)
ADDR1R0
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
072100480001
MOV(0048H)R1
0048
2B480001
TEST0048HR1
0078
1F70FFF00000
AND#0078H(R0)
0078
0820
ADDR1R0
运行结果:
五、设计中遇到的问题及解决办法
调试双操作数指令执行微程序,先要写出双操作数指令执行微程序的微地址,微命令,然后写微程序,最后上机调试,判断是否正确,检查微程序运行结果是否正确是一项稍繁琐的事情,需要检查每步的寄存器、标志位、总线上的地址和数据。
但经过几天的熟悉,我们已慢慢熟悉掌握。
第四天单操作数运算和移位指令的微程序设计与调试
一、设计目标
完成单操作数运算指令INC、DEC、NOT和7条移位指令微程序的设计。
二、单操作数运算和移位指令微程序入口地址
指令助记符
入口地址(H)
指令助记符
入口地址(H)
INC
071
SAR
061
DEC
072
SHL
062
NOT
073
SHR
063
ROL
064
ROR
065
RCL
066
RCR
067
三、单操作数运算和移位指令微程序的设计
微地址(H)
微指令(H)
微命令
BM
NA
注释
092
SAR
1810006F
06F
094
SHL
1820006F
06F
096
SHR
1810006F
06F
098
ROL
1820006F
06F
09A
ROR
1810006F
06F
09C
RCL
1820006F
06F
09E
RCR
1810006F
06F
0A4
1A70006F
INC,PSWce,SV
0
06F
INC
0A8
1AB0006F
DEC,PSWce,SV
0
06F
DEC
0AC
19F0006F
NOT,PSWce,SV
0
06F
NOT
070
68000000
Soe,GRSce
0
000
存入寄存器
071
60030072
Soe,DRce
0
072
存入dr
072
00052000
DRoe’,ARoe’,WR
0
000
存入贮存
四、测试程序、数据及运行结果
1.测试内容:
间接寻址
测试程序:
SHL(0010)H
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
00590010
SHL(0010)H
运行结果:
微指令的执行次序为:
001—>002—>003—>006—01B—>01F—>022—>023—>024—>025—>026—>007—>62—>02F,参照取指令、取操作数和SHL指令执行微流程分析,所执行的微指令的次序是正确的。
2.测试内容:
相对寻址
测试程序:
DEC(0001)
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
02580001
DEC(0001)
运行结果及分析:
第五天子程序调用、堆栈和转移指令微程序设计与调试
一、设计目标
完成CALL、RET、PUSH、POP和9条转移指令的微程序的设计。
二、PUSH、POP、CALL、RET指令微程序的设计
PUSH
微地址(H)
微指令(H)
微命令
BM
NA
注释
0C0
F40000C1
SPoe,Ace
0
0C1
堆栈地址存入A
0C1
02B000C2
DEC,SV
0
0C2
地址减1,输出
0C2
7C0800C3
Soe,SPce,ARce
0
0C3
地址存入堆栈和AR中
0C3
00052000
ARoe',DRoe',WR
0
000
地址写入主存
POP
微地址(H)
微指令(H)
微命令
BM
NA
注释
0C8
B00000C9
ARoe,TRce
0
0C9
AR内容存入TR
0C9
F40800CA
SPoe,Ace,ARce
0
0CA
SP内容存入A和AR
0CA
027610CB
ARoe',RD,DRce',INC,SV
0
0CB
地址减1,输出
0CB
800800CC
TRoe,ARce
0
0CC
TR内容存入AR
0CC
7C052000
Soe,SPce,ARoe',DRoe',WR
0
000
堆栈内容写入新地址
CALL
微地址(H)
微指令(H)
微命令
BM
NA
注释
0D0
F40000D1
SPoe,Ace
0
0D1
堆栈地址存入A
0D1
B2B000D2
DEC,SV,ARoe,TRce
0
0D2
地址减1,AR内容存入TR
0D2
7C0800D3
Soe,ARce,SPce
0
0D3
地址存入AR,SP
0D3
200300D4
PCoe,DRce
0
0D4
PC内容存入DR
0D4
84052000
ARoe',DRoe',WR,TRoe,PCce
0
000
PC个数写入内存,TR内容存入PC
RET
微地址(H)
微指令(H)
微命令
BM
NA
注释
03C
F408003D
SPoe,Ace,ARce
0
03D
堆栈地址写入A和AR
03D
0276103F
INC,SV,ARoe',RD,DRce'
0
03F
地址加1,同时读数
03F
C4000040
DRoe,PCce
0
040
DR值存入PC
040
7C000000
Soe,SPce
0
000
堆栈存入新地址
三、测试程序、数据及运行结果
1、测试内容:
直接寻址
测试程序:
CALL000AH
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
035A000A
CALL000AH
运行结果及分析:
首先,微指令的执行次序为:
001—>002—>003—>006—01B—>01F—>024—>025—>026—>007—>07A—>047—>048—>049—>04A—>000,参照取指令、取操作数和CALL指令执行微流程分析,所执行的微指令的次序是正确的。
2、测试内容:
相对寻址
测试程序:
JMP+2
机器码:
内存地址(H)
机器码(H)
汇编指令
0030
02180002
JMP+2
运行结果及分析:
3.测试程序:
PUSH0010HPOP0012H//0010存放AAAA
机械码:
031A0010033A0012
内存地址(H)
机器码(H)
汇编指令
0030
031A0010033A0012
PUSH0010HPOP0012H
运行结果及分析:
第六天检查指令
一、设计目标
用综合应用程序测试JU-C1十六位微程序控制计算机。
二、测试程序、数据及运行结果
测试程序:
MOV#0031H,0080H077A00310080
PUSH0080H031A0080
CALL0060H035A0060
SHL0080H005A0080
运行结果及分析:
总结
这次计算机组成原理简单微程序的设计,通过实验将实际问题和课本内容紧密的联系在一起,将知识运用到了实际之中,更加深入地掌握了微程序设计。
课本的知识是死的,只有经过自己的动手实践调试,才能更好的掌握知识
我意识到了上机实践的重要性,因为在进行调试时,因此在对于一些错误的处理还是很生疏,这就暴露了平时不注重实践的弊端。
既然是程序设计,就应该多动手,当然不仅仅是纸上谈兵,还应注重多上机操作。
还有就是,在执行指令的过程中出现的错误,我还不能准确的定位出到底是哪地方面出现了错误,往往需要询问老师或者是思考很久之后才能找到原因。
对于这点,应该是对于整个过程还不够了解的原因,因此在以后的学习中还应该加强对知识的认识程度。
刚开始时,由于下载器件的问题保存微程序时中间会有一部分突然就没了,最开始还没在意,就是总发现验证时总出错,后来才知道是下载的微程序有问题,当时真的是非常的郁闷,后来在经过一翻重新检查后,终于把微程序完整的保存好了。
在完成整个课设后,我对取操作数的过程,MOV指令,运算类指令,CPU硬件的基本设计,转移指令,移位指令,堆栈类指令以及中断系统都有了更加深刻的理解,因为是通过实践的缘故,能够将抽象化的过程更加形象化,便于理解,使我明确了各种指令的执行过程。
我认为整个课设的设计还是很合理的,每天都有每天的任务,任务也很明确,每天都可以充分利用,后一天的内容与前一天的内容紧密相连,难度也是逐渐加深,这个循序渐进的过程更容易让我们接受。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 江苏 大学 新颖