1、计算机组成原理课程设计江苏大学版本含day1day7微程序文件 计算机组成原理课程设计报告专业名称:软件工程 班级学号: 3100608024学生姓名: 张建彬 指导教师: 丁 伟 设计时间:2013年7月4日2013年7月12日附:day1day7微程序下载地址: 第一天:熟悉微程序的设计和调试方法一、设计目标1、掌握微程序的设计方法2、熟悉利用调试软件运行、调试微程序的方法二、操作提示1、准备工作(1)将试验仪的通信电缆和下载电缆分别连接电脑的RS-232串行接口和打印机接口。接通试验仪电源。(2)从课程资源网站下载CPU.bit、CPU.cfg、day1.m19。2、下载FPGA配置数据
2、利用iMPACT软件将CPU.bit下载到FPGA。3.输入微程序利用调试软件UniDebugger将微程序写入控存。(1) 设置实验方式和观察信号。(2) 下载微程序文件day1.m19.该文件包含取指令微程序部分取操作数微程序和MOV指令执行阶段微程序微程序如下: .取指令微程序微地址(H)微指令(H)微指令字段(H)微命令F0F1F2F3F4F5F6F7F8F900120080006100020000002PCoe,ARce00200069003000012110003ARoe,RD,DRce,PCinc003CC000404630000002004DRoe,IRce.取源操作数为立即数
3、的微程序微地址(H)微指令(H)微指令字段(H)微命令F0F1F2F3F4F5F6F7F8F900400000A08000000005008NOP00B0008000F10002000000FPCoe,ARce00F00069C10000012116010ARoe,RD,DRce,PCinc016D0000006640000000006DRoe,TRce.取目的操作数为寄存器寻址的微程序微地址(H)微指令(H)微指令字段(H)微命令F0F1F2F3F4F5F6F7F8F900620080006000000005018NOP01800069003250050000007GRSoe,Ace.MOV
4、指令的微程序微地址(H)微指令(H)微指令字段(H)微命令F0F1F2F3F4F5F6F7F8F900700000800000000004xxxPCoe,ARce04400000E46000000007046ARoe,RD,DRce,PCinc04688000000440000000000DRoe,IRce4、输入调机程序今天的将调机程序就是一条指令:“ MOV #1234H, R1”。首先将指令翻译成机器码,根据指令的编码规则,该指令的编码是:0761 1234。然后利用调试软件将指令码写入主存,地址从主存的0000H开始。5、调试微程序。点击调试软件工具条上的“单步”或“扩展”按钮多次,运
5、行的结果显示如下图所示。图中第一行数据是“单步”运行的结果,后续各行是“扩展单步”的运行结果。可以看出,“扩展单步”比“单步”可以观察到更多的信号。 本例MOV指令的单步运行跟踪数据6、分析微程序的执行结果,一般方法如下:首先分析微程序执行流程是否正确,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00100200300400B00F016006018007044046000,通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。如果执行的微指令次序不正确,那就要分析原因,检查BM和NC设置是否正确、检查uAR的各个输入信号的值是否正确,如IR、NA等。然后分析指令
6、的运行结果。理论上本条测试指令执行完后,GRS的值应该是1234。通过调试软件的执行如上结果图可以看出,指令执行结果是正确的。如果结果不对,就需要进一步分析每一条微指令。分析的方法是针对微指令的每一条微命令,查看相应微操作前后相关模块的数据变化是否与指令微流程一致。下面举个例子说明如何分析每条微指令的。图中的微地址为00B(uAR00B)的控存单元所对应的内容为2008000F,即微指令为2008000F,所代表的微操作是:PCoe,ARce,即PC的内容送IB、IB的内容送AR,理论上的正确结果应该是IB=0001, AR=0001;通过图中的00B单元微指令的执行结果可以看出,IB 的数据
7、由上一条微指令的结果FFFF0001, AR 的数据由上一条微指令的结果00000001,说明本条微指令执行结果是正确。从上面的分析可以看出,要想检查运行结果是否正确,关键是要清楚理论上正确的结果是什么。这就要求实验者对指令的微程序流程非常清楚,从而达到了理解计算机内部信息流动过程、掌握计算机工作原理的目的。所以实验者应重视实验数据的分析工作,否则就失去了实验的意义。第二天: 取操作数微程序的设计与调试一、设计目标 设计并调试取操作数的微程序二、取操作数微流程 取源操作数微流程: 取目的作数微流程:三、测试程序、数据及运行结果格式如下:1、测试内容:立即数寻址、直接寻址测试指令(或程序):MO
8、V #5678H,0010H指令功能:将立即数5678H送到内存地址为0010单元,机器码如下 机器码: 内存地址(H)机器码(H)汇编指令0000077A 5678 0010MOV #5678H , 0010H 在调试软件UniDebugger中,根据表将机器码输入RAM,输入后如下图。扩展单步执行的结果如图1.2,分析过程如下:对照图1.2,首先看微指令的执行次序:00100200300400B00F01600601B01F024025026007004047072000,参照取指令,取操作数和MOV执行微流程分析,所执行的微指令顺序是正确的 其次分析执行的过程,在003的微指令执行后,下
9、一步IR=077A,说明取指令是正确的;在016的微指令执行后,下一步TR=5678,说明取原操作数是正确的;在在026的微指令执行后,下一步A=FFFF(此时0010单元的内容为FFFF,见图1.2),说明取目的操作数是正确的。最后分析指令执行的结果,指令执行前0010单元的内容为FFFF(见图1.1)指令执行后内容变为5678(在指令的最后一条微指令,微地址为072的下一步,见图1.5),说明结果是正确的。 图1.1指令执行前的RAM的内容 图1.2运行结果及分析: 图1.3指令执行后RAM的内容2、测试内容:相对寻址、间接寻址测试指令(或程序):MOV +0004H,(0010H)指令功
10、能:将有效地址(PC+0004H)的内容送到0010H地址的地址中去 机器码: 内存地址(H)机器码(H)汇编指令00000719 0004 0010MOV +0004, (0010H) 在调试软件UniDebugger中,根据表将机器码输入RAM,输入后如下图。扩展单步执行的结果如图2.2,分析过程如下:对照图2.2,首先看微指令的执行次序:00100200300400B00F01001101701501600601B01F022023024025026007044047072000,参照取指令,取操作数和MOV执行微流程分析,所执行的微指令顺序是正确的其次分析执行的过程,在003的微指令执
11、行后,下一步IR=0719,说明取指令是正确的;在016的微指令执行后,下一步TR=0000,说明取原操作数是正确的;在在026的微指令执行后,下一步A=0004(此时0010单元的内容为FFFF,见图2.2),说明取目的操作数是正确的。最后分析指令执行的结果,指令执行前0010单元的内容为FFFF,以FFFF为地址FFFF内容原为0004,最终指令执行后内容变为0000(在指令的最后一条微指令,微地址为072的下一步,见图2.2),说明结果是正确的。图2.1图2.23、测试内容:寄存器寻址、寄存器间接寻址测试指令(或程序):MOV R1,(R2)机器码: 内存地址(H)机器码(H)汇编指令0
12、000042A MOV R1,(R2)在调试软件UniDebugger中,根据表将机器码输入RAM,输入后如下图。扩展单步执行的结果如图3.2,分析过程如下:对照图3.2,首先看微指令的执行次序:001002003004008006019025026007044047072000,参照取指令,取操作数和MOV执行微流程分析,所执行的微指令顺序是正确的其次分析执行的过程,在003的微指令执行后,下一步IR=042A,说明取指令是正确的;在008的微指令执行后,下一步TR=0000,说明取原操作数是正确的;在在026的微指令执行后,A=0000说明取目的操作数是正确的。最后分析指令执行的结果,指令
13、执行前R1单元的内容为0000(见图3.2),指令执行后以R2内容0000为地址,即将0000转移到0000地址(在指令的最后一条微指令,微地址为072的下一步,见图3.2)说明结果是正确的4、测试内容:寄存器寻址、寄存器变址寻址测试指令(或程序):MOV R1,2(R2)机器码: 内存地址(H)机器码(H)汇编指令00000432 0002 MOV R1,2(R2)在调试软件UniDebugger中,根据表将机器码输入RAM,输入后如下图。扩展单步执行的结果如图2.2,分析过程如下:对照图,首先看微指令的执行次序:00100200300400800601A01C01D01E02702502600704404707200
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1