计算机组成原理课程设计江苏大学版

  • 格式:docx
  • 大小:45.94 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏大学

计算机组成原理课程设计报告

专业名称:网络工程

班级学号:3130610031

学生姓名:张杰

指导教师:胡广亮

设计时间:2013年6月24日—2013年7月2日

第一天:熟悉微程序的设计和调试方法

一、设计目标

1、掌握微程序的设计方法

2、熟悉利用调试软件运行、调试微程序的方法

二、操作提示

1、连接实验设备

注意:请在断电状态下连接调试电缆。

2、下载FPGA配置数据

从课程网站下载CPU.sof等文件,使用Quartus II Programmer 软件将CPU.sof下载到FPGA。

3、输入微程序

利用调试软件将微程序写入控存,微程序如下。

取指令微程序

取源操作数为立即数的微程序

取目的操作数为寄存器寻址的微程序

MOV指令的微程序(目的数寄存器寻址)

4、输入调机程序

今天的将调机程序就是一条指令:“MOV #0001H, R1”。首先将指令翻译成机器码,根据指令的编码规则,该指令的编码是:0761 0001。然后利用调试软件将指令码写入主存,地址从主存的0030H开始。

5、调试微程序。

利用调试软件“Step”按钮控制微指令单步执行,执行结果如图2.3所示

2.3 例2.1 MOV指令的单步运行跟踪数据

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

机器码:

运行结果:

第二天取操作数微程序的设计和调试一、设计目标

设计并调试取操作数的微程序。

二、取操作数微流程

取目的操作数流程:

三、测试程序、数据及运行结果

格式如下:

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指令微程序的设计