收藏 分享(赏)

计算机组成原理课程设计报告(江苏大学软件工程).doc

上传人:无敌 文档编号:683111 上传时间:2018-04-18 格式:DOC 页数:25 大小:2.86MB
下载 相关 举报
计算机组成原理课程设计报告(江苏大学软件工程).doc_第1页
第1页 / 共25页
计算机组成原理课程设计报告(江苏大学软件工程).doc_第2页
第2页 / 共25页
计算机组成原理课程设计报告(江苏大学软件工程).doc_第3页
第3页 / 共25页
计算机组成原理课程设计报告(江苏大学软件工程).doc_第4页
第4页 / 共25页
计算机组成原理课程设计报告(江苏大学软件工程).doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、 江苏大学计算机组成原理课程设计报告专业名称: 软件工程班级学号:软件 1001 2第一天 取操作数微程序的设计和调试1、设计目标设计并调试取操作数的微程序 二、取操作数微流程立即直接间接相对寄存器寻址 寄存器间接寻址 变址寻址 立即 / 直接 / 间接 / 相对寻址取源操作数入口0 0 40 0 85 : M A R1 , 0A R o e , R D , D R c e , P C i n c0 0 F0 1 06 : M A R2 , 1G R S o e , T R c e0 0 80 0 60 : N A A RD R o e , T R c e0 1 60 0 60 : N A A

2、 R进入取目标操作数P C o e , A R c e0 0 AP C o e , A R c e0 0 BA R o e , R D ,D R c e , P C i n c0 0 CD R o e , A R c e0 1 2D R o e , A c e0 1 0D R o e , A c e0 0 DA R o e , R D , D R c e 0 1 5A R o e , R D , D R c e 0 1 3P C o eA D D , S V0 1 1G R S o eA D D , S V0 0 ED R o e , A R c e0 1 4S o e , A R c e0

3、1 7G R S o e , A R c e0 0 93直接间接相对寄存器寻址 寄存器间接寻址 变址寻址 直接 / 间接 / 相对寻址取目的数入口0 0 60 1 85 : M A R1 , 0A R o e , R D , D R c e , P C i n c0 1 F0 2 06 : M A R2 , 1G R S o e , A c e0 1 80 0 70 : N A A RD R o e , A c e0 2 60 0 70 : N A A RE X E CP C o e , A R c e0 1 AP C o e , A R c e0 1 BA R o e , R D ,D R

4、c e , P C i n c0 1 CD R o e , A R c e0 2 2D R o e , A c e0 2 0D R o e , A c e0 1 DA R o e , R D , D R c e 0 2 5A R o e , R D , D R c e 0 2 3P C o eA D D , S V0 2 1G R S o eA D D , S V0 1 ED R o e , A R c e0 2 4S o e , A R c e0 2 7G R S o e , A R c e0 1 94三、测试程序、数据及运行结果1、测试内容:立即寻址,直接寻址运行数据:内存地址(H) 机器

5、码(H) 汇编指令0000 077A 5678 0010 MOV #5678H,0010H运行结果及分析:从微地址可以看出,先是取指令 001-002-003-004,再是取源操作数,004-00B-00F-016-006,是立即数寻址方式,再是取目的操作数,006-01B01F-024-025-026-007,是直接寻址方式,最后是执行阶段,007-044-047-072-000,将结果 mov到内存里。2、测试内容:立即寻址,寄存器运行数据:内存地址(H) 机器码(H) 汇编指令0000 0761 5678 MOV #5678H,R1运行结果及分析:5从微地址可以看出,先是取指令 001-

6、002-003-004,再是取源操作数,004-00B-00F-016-006,是立即数寻址方式,再是取目的操作数,006-018-007,是寄存器寻址方式,最后是执行阶段,007-044-046-000,将结果 mov 到寄存器里。由 GRS 可以看出最终结果由 0000 变成了 5678。4、设计中遇到的问题及解决办法才开始的时候,对软件的应用不是很熟悉,遇到一些麻烦,在同学的帮助下,解决了软件应用问题。6第二天 运算指令的微程序设计与调试1、设计目标设计并调试运算指令的微程序。二、运算指令微程序入口地址指 令 编 码指令助记符F E D C B A 9 8 7 6 5 4 3 2 1 0

7、入口地址(H)MOV src, dst 0 0 0 0 0 1 源地址码 目的地址码 044ADD src, dst 0 0 0 0 1 0 源地址码 目的地址码 048ADDC src, dst 0 0 0 0 1 1 源地址码 目的地址码 04CSUB src, dst 0 0 0 1 0 0 源地址码 目的地址码 050SUBB src, dst 0 0 0 1 0 1 源地址码 目的地址码 054CMP src, dst 0 0 0 1 1 0 源地址码 目的地址码 058AND src, dst 0 0 0 1 1 1 源地址码 目的地址码 05COR src, dst 0 0 1

8、0 0 0 源地址码 目的地址码 060XOR src, dst 0 0 1 0 0 1 源地址码 目的地址码 064TEST src, dst 0 0 1 0 1 0 源地址码 目的地址码 068INC dst 0 0 0 0 0 0 1 0 0 0 1 目的地址码 0A4DEC dst 0 0 0 0 0 0 1 0 0 1 0 目的地址码 0A8NOT dst 0 0 0 0 0 0 1 0 0 1 1 目的地址码 0AC三、运算类指令微程序微地址(H) 微指令(H) 微命令 BM NA 注释007 00000800 OP 4 XXX 指令执行入口048 9870006F TRoe, A

9、DD, Sce, PSWce 0 06F ADD04C 98B0006F TRoe,ADDC,SV,PSWce 0 06F ADDC050 98F0006F TRoe,SUB,SV,PSWce 0 06F SUB06F 00000E70 7 070 存结果070 68000000Soe,GRSce0 000ALU 运算,结果送寄存器071 60030072 Soe,DRce 0 072 结果送存储器072 00052000 DRoe,ARoe,WR 0 000四、测试程序、数据及运行结果1、测试内容:ADD 运算运行数据:7内存地址(H) 机器码(H) 汇编指令000000020761 567

10、80B61 F000MOV #5678H,R1ADD #F000, R1运行结果及分析:从微地址可以看出,第一阶段先是取第一条指令(MOV #5678H,R1 )001-002-003-004,再是取源操作数,004-00B-00F-016-006 ,是立即数寻址方式,再是取目的操作数,006-018-007,是寄存器寻址方式,最后是执行阶段,007-044-046-000,将结果mov 到寄存器里。在 GRS 可以看出由 0000 变成了 5678。第二阶段先是取第二条指令(ADD #F000, R1)001-002-003-004, 再是取源操作数, 004-00B-00F-016-006

11、,是立即数寻址方式,再是取目的操作数,006-018-007,是寄存器寻址方式,最后是执行阶段,007-048-04F-070-000,是 ADD 运算,结果存放在寄存器 GRS 中,可以看出结果为4678,并且产生进位,SZOC=0001,正确。五、设计中遇到的问题及解决办法指令的入口地址开始时没看懂,在同学的点拨下明白了。再是写微程序阶段,完成微程序的输入后,输入时由于不太仔细有一些错误,经过调试发现并改正了错误。经过对每条运算的测试,一些结果不对,在自己的一步一步的查找中,通过和同学的微程序的对照,一一弄懂并改正了。8第三天 CPU 硬件的初级设计与验证一、设计目标在运算器实验的基础上对

12、硬件进行扩充,建立初级 CPU 的数据通路,构造一个只支持运算指令的初级 CPU。二、硬件设计1、PC 模块设计(加上适当注释)module PC(d,q,n_reset,clk,ce,PCinc);input 15:0 d;input n_reset,clk,ce;input PCinc;output 15:0 q;reg 15:0 data;always (posedge clk or negedge n_reset)beginif (!n_reset)data = 0;else if (ce)data = d;else if(PCinc)data = data+1;endassign q

13、 = data;endmodule2、IR 模块设计module IR #(parameter DATAWIDTH=16)(input wire DATAWIDTH-1:0 d,input wire clk,input wire ce,input n_reset,output reg DATAWIDTH-1:0 q);9always(posedge clk or negedge n_reset) beginif (!n_reset)q = 0;else if (ce)q = d;endDR:module DR #(parameter DATAWIDTH=16)(input wire DATAW

14、IDTH-1:0 data_IB,input wire DATAWIDTH-1:0 data_DB,input wire clk,input wire DRce_IB,input wire DRce_DB,input n_reset,output reg DATAWIDTH-1:0 q);always(posedge clk or negedge n_reset) beginif(!n_reset)q=0;else if(DRce_IB)q=data_IB;else if(DRce_DB)q=data_DB;endendmodule3、顶层模块设计(自己增加的设计部分)/TR/TR 寄存器的实

15、例化R #(DATAWIDTH) TR(.q(TR_out),.d(IB),.clk(clock),.ce(TRce),.n_reset(n_reset);buffer #(DATAWIDTH) reg_buffer(.q(IB), .d(TR_out), .oe(TRoe);10/ AR/AR 寄存器的实例化R #(DATAWIDTH) AR(.q(AR_out),.d(IB),.clk(clock),.ce(ARce),.n_reset(n_reset);buffer #(ADDRWIDTH) AR_AB(.q(AB), .d(AR_out), .oe(ARoe_AB);buffer #(

16、ADDRWIDTH) AR_IB(.q(IB), .d(AR_out), .oe(ARoe_IB);/IR/IR 寄存器的实例化R #(DATAWIDTH) IR(.q(IR_out),.d(IB),.clk(clock),.ce(IRce),.n_reset(n_reset);/PCPC PC(.d(IB), .q(PC_out), .n_reset(n_reset), .clk(clock), .ce(PCce), .PCinc(PCinc);buffer #(DATAWIDTH) PC_buffer(.q(IB), .d(PC_out), .oe(PCoe);/DRDR #(DATAWI

17、DTH) DR(.q(DR_out), .data_IB(IB), .data_DB(DB), .clk(clock), .DRce_IB(DRce_IB), .DRce_DB(DRce_DB), .n_reset(n_reset);buffer #(DATAWIDTH) DR_DB(.q(DB), .d(DR_out), .oe(DRoe_DB);buffer #(DATAWIDTH) DR_IB(.q(IB), .d(DR_out), .oe(DRoe_IB);三、验证1、测试内容:ADD 运算运行数据:内存地址(H) 机器码(H) 汇编指令000000020761 56780B61 F000MOV #5678H,R1ADD #F000, R1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报