计算机组成原理课程设计江苏大学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理课程设
计江苏大学
Company number【1089WT-1898YT-1W8CB-9UUT-92108】
江苏大学计算机组成原理课程设计报告
专业名称:网络工程
班级学号:31
学生姓名:张杰
指导教师:胡广亮
设计时间:2013年6月24日—2013年7月2日
第一天:熟悉微程序的设计和调试方法
一、设计目标
1、掌握微程序的设计方法
2、熟悉利用调试软件运行、调试微程序的方法
二、操作提示
1、连接实验设备
注意:请在断电状态下连接调试电缆。
2、下载FPGA配置数据
从课程网站下载等文件,使用Quartus II Programmer 软件将下载到
FPGA。
3、输入微程序
利用调试软件将微程序写入控存,微程序如下。
取指令微程序
取源操作数为立即数的微程序
取目的操作数为寄存器寻址的微程序
MOV指令的微程序(目的数寄存器寻址)
4、输入调机程序
今天的将调机程序就是一条指令:“ MOV #0001H, R1”。首先将指令翻译成机器码,根
据指令的编码规则,该指令的编码是:0761 0001。然后利用调试软件将指令码写入主存,
地址从主存的0030H开始。
5、调试微程序。
利用调试软件“Step”按钮控制微指令单步执行,执行结果如图所示
例 MOV指令的单步运行跟踪数据
6、分析微程序的执行结果,一般方法如下:
首先分析微程序执行流程是否正确,根据前面指令微流程的设计,理论上该指令微程序
的执行顺序应该是001→002→003→004→00B→00F→016→006→018→007→031→02D→
02E→000,通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。
如果执行的微指令次序不正确,那就要分析原因,检查BM和NC设置是否正确、检查uAR
的各个输入信号的值是否正确,如IR、NA等。
然后分析指令的运行结果。理论上本条测试指令执行完后,R1的值应该是0001。通过
调试软件的执行结果图可以看出,指令执行结果是正确的。如果结果不对,就需要进一
步分析每一条微指令。分析的方法是针对微指令的每一条微命令,查看相应微操作前后相关
模块的数据变化是否与指令微流程一致。下面举个例子说明如何分析每条微指令的。
图的微地址为000B(uAR=000B)的控存单元所对应的内容为2008000F,即微指
令为2008000F,所代表的微操作是:PCoe,ARce,即PC的内容送IB、IB的内容送AR,
理论上的正确结果应该是IB=0031, AR=0031;通过图的000B单元微指令的执行结果可
以看出,IB 的数据由上一条微指令的结果0000→0031, AR 的数据由上一条微指令的结果
0030→0031,说明本条微指令执行结果是正确。
从上面的分析可以看出,要想检查运行结果是否正确,关键是要清楚理论上正确的结果
是什么。这就要求实验者对指令的微程序流程非常清楚,从而达到了理解计算机内部信息流
动过程、掌握计算机工作原理的目的。所以实验者应重视实验数据的分析工作,否则就失去
了实验的意义。
1、测试内容:立即数寻址、寄存器寻址
测试指令(或程序):MOV #0001H, R1
机器码:
运行结果:
第二天取操作数微程序的设计和调试
一、设计目标
设计并调试取操作数的微程序。
二、取操作数微流程
取目的操作数流程:
三、测试程序、数据及运行结果
格式如下:
1、测试内容:间接寻址、寄存器寻址
测试指令(或程序):MOF (0048)R1
机器码:
运行结果:
四、设计中遇到的问题及解决办法
在设计过程中开始对调试程序的运行不熟悉,不是很了解了此程序的运行。在操作过程中,粗心导致了输入机器码的错误,或者是所在位置错误,重新输入解决了此问题。我详细地了解了它的整个过程和对于每一步的分析和验证,对微程序设计有了更深入的了解。
第三天双操作数指令的微程序设计与调试
一、设计目标
设计并调试运算指令的微程序。
二、双操作数指令微程序入口地址
三、双操作数指令执行微程序
四、测试程序、数据及运行结果
1、测试内容:立即寻址,直接寻址,间接寻址,寄存器寻址,寄存器间接寻址
测试程序:MOV(0048H) R1
TEST 0048H R1
AND #0078H (R0)
ADD R1 R0
机器码:
运行结果:
五、设计中遇到的问题及解决办法
调试双操作数指令执行微程序,先要写出双操作数指令执行微程序的微地址,微命令,然后写微程序,最后上机调试,判断是否正确,检查微程序运行结果是否正确是一项稍繁琐的事情,需要检查每步的寄存器、标志位、总线上的地址和数据。但经过几天的熟悉,我们已慢慢熟悉掌握。
第四天单操作数运算和移位指令的微程序设计与调试
一、设计目标
完成单操作数运算指令INC、DEC、NOT和7条移位指令微程序的设计。
二、单操作数运算和移位指令微程序入口地址
三、单操作数运算和移位指令微程序的设计
四、测试程序、数据及运行结果
1.测试内容:间接寻址
测试程序:SHL (0010)H
机器码:
运行结果:
微指令的执行次序为:001—>002—>003—>006—01B—>01F—>022—>023—>024—>025—>026—>007—>62—>02F,参照取指令、取操作数和SHL指令执行微流程分析,所执行的微指令的次序是正确的。
2.测试内容:相对寻址
测试程序: DEC (0001)
机器码:
运行结果及分析:
第五天子程序调用、堆栈和转移指令微程序设计与调试
一、设计目标
完成CALL、RET、PUSH、POP和9条转移指令的微程序的设计。
二、PUSH、POP、CALL、RET指令微程序的设计