精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx

上传人:b****3 文档编号:13827776 上传时间:2022-10-13 格式:DOCX 页数:26 大小:1.72MB
下载 相关 举报
精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx_第1页
第1页 / 共26页
精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx_第2页
第2页 / 共26页
精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx_第3页
第3页 / 共26页
精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx_第4页
第4页 / 共26页
精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx

《精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。

精品计算机组成原理毕业论文报告40江苏大学适用于软件工程41Word文档下载推荐.docx

内存地址(H)

机器码(H)

汇编指令

0000

077A56780010

MOV#5678H,0010H

运行结果及分析:

从微地址可以看出,先是取指令001->

002->

003->

004,再是取源操作数,004->

00B->

00F->

016->

006,是立即数寻址方式,再是取目的操作数,006->

-01B>

01F->

024->

025->

026->

007,是直接寻址方式,最后是执行阶段,007->

044->

047->

072->

000,将结果mov到内存里。

2、

立即寻址,寄存器

07615678

MOV#5678H,R1

018->

007,是寄存器寻址方式,最后是执行阶段,007->

046->

000,将结果mov到寄存器里。

由GRS可以看出最终结果由0000变成了5678。

4、设计中遇到的问题及解决办法

才开始的时候,对软件的应用不是很熟悉,遇到一些麻烦,在同学的帮助下,解决了软件应用问题。

第二天运算指令的微程序设计与调试

设计并调试运算指令的微程序。

二、运算指令微程序入口地址

指令助记符

指令编码

入口地址(H)

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

MOVsrc,dst

源地址码

目的地址码

044

ADDsrc,dst

048

ADDCsrc,dst

04C

SUBsrc,dst

050

SUBBsrc,dst

054

CMPsrc,dst

058

ANDsrc,dst

05C

ORsrc,dst

060

XORsrc,dst

064

TESTsrc,dst

068

INCdst

0A4

DECdst

0A8

NOTdst

0AC

三、运算类指令微程序

微地址(H)

微指令(H)

微命令

BM

NA

注释

007

OP

XXX

指令执行入口

TRoe,ADD,Sce,PSWce

06F

ADD

98B0006F

TRoe,ADDC,SV,PSWce

ADDC

98F0006F

TRoe,SUB,SV,PSWce

SUB

00000E70

070

存结果

Soe,GRSce

000

ALU运算,结果送寄存器

071

Soe,DRce

072

结果送存储器

DRoe’,ARoe’,WR

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

ADD运算

0002

07615678

0B61F000

ADD#F000,R1

从微地址可以看出,第一阶段先是取第一条指令(MOV#5678H,R1)001->

在GRS可以看出由0000变成了5678。

第二阶段先是取第二条指令(ADD#F000,R1)001->

048->

04F->

070->

000,是ADD运算,结果存放在寄存器GRS中,可以看出结果为4678,并且产生进位,SZOC=0001,正确。

五、设计中遇到的问题及解决办法

指令的入口地址开始时没看懂,在同学的点拨下明白了。

再是写微程序阶段,完成微程序的输入后,输入时由于不太仔细有一些错误,经过调试发现并改正了错误。

经过对每条运算的测试,一些结果不对,在自己的一步一步的查找中,通过和同学的微程序的对照,一一弄懂并改正了。

第三天CPU硬件的初级设计与验证

一、设计目标

在运算器实验的基础上对硬件进行扩充,建立初级CPU的数据通路,构造一个只支持运算指令的初级CPU。

二、硬件设计

1、PC模块设计

(加上适当注释)

modulePC(d,q,n_reset,clk,ce,PCinc);

input[15:

0]d;

inputn_reset,clk,ce;

inputPCinc;

output[15:

0]q;

reg[15:

0]data;

always@(posedgeclkornegedgen_reset)

begin

if(!

n_reset)

data=0;

elseif(ce)

data=d;

elseif(PCinc)

data=data+1;

end

assignq=data;

endmodule

2、IR模块设计

moduleIR#(

parameterDATAWIDTH=16)

(inputwire[DATAWIDTH-1:

0]d,

inputwireclk,

inputwirece,

inputn_reset,

outputreg[DATAWIDTH-1:

0]q);

always@(posedgeclkornegedgen_reset)

begin

q=0;

q=d;

end

DR:

moduleDR#(

0]data_IB,

inputwire[DATAWIDTH-1:

0]data_DB,

inputwireDRce_IB,

inputwireDRce_DB,

if(!

q=0;

elseif(DRce_IB)

q=data_IB;

elseif(DRce_DB)

q=data_DB;

3、顶层模块设计(自己增加的设计部分)

TR

TR寄存器的实例化

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));

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#(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));

PC

PCPC(.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));

DR

DR#(DATAWIDTH)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));

三、验证

结果和第二天的一样,说明硬件扩充正确。

四、设计中遇到的问题及解决办法

在写TR,AR,IR的实例化代码时,没注意是用寄存器模块R实例化得到的,经过报错和仔细看书后,发现了问题,成功改正过来了。

完成程序运行出了问题,经过查找发

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1