计算机组成原理课程设计 1.docx

上传人:b****8 文档编号:9696597 上传时间:2023-02-05 格式:DOCX 页数:23 大小:202.92KB
下载 相关 举报
计算机组成原理课程设计 1.docx_第1页
第1页 / 共23页
计算机组成原理课程设计 1.docx_第2页
第2页 / 共23页
计算机组成原理课程设计 1.docx_第3页
第3页 / 共23页
计算机组成原理课程设计 1.docx_第4页
第4页 / 共23页
计算机组成原理课程设计 1.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计 1.docx

《计算机组成原理课程设计 1.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计 1.docx(23页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计 1.docx

计算机组成原理课程设计1

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

专业名称:

软件工程

班级:

1401

学号:

学生姓名:

李威

指导教师:

丁伟

设计时间:

2015年6月20日—2015年6月28日

第一天:

熟悉微程序的设计和调试方法

一、设计目标

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

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

二、操作提示

1、准备工作

从课程资源网站下载PPT。

2、下载FPGA配置数据

利用软件将下载到FPGA。

3.输入微程序

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

设置实验方式和观察信号。

微程序如下:

①.取指令微程序

微地址(H)

微指令(H)

微指令字段(H)

微命令

F0

F1

F2

F3

F4

F5

F6

F7

F8

F9

000

1

0

0

0

2

0

0

0

0

001

PCoe,ARce

001

00069002

0

0

0

0

1

2

1

1

0

002

ARoe’,RD,DRce’,PCinc

002

CC000003

6

3

0

0

0

0

0

0

0

003

DRoe,IRce

003

00000404

0

0

0

0

0

0

0

0

2

004

NOP

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

微地址(H)

微指令(H)

微指令字段(H)

微命令

F0

F1

F2

F3

F4

F5

F6

F7

F8

F9

004

00000A08

0

0

0

0

0

0

0

0

5

008

NOP

005

00000A08

0

0

0

0

0

0

0

0

5

008

NOP

008

2

4

0

0

0

0

0

0

0

006

GRSoe,TRce

009

2

0

0

0

2

0

0

0

0

015

GRSoe,ARce

00A

1

0

0

0

2

0

0

0

0

010

PCoe,ARce

00B

1

0

0

0

2

0

0

0

0

012

PCoe,ARce

00C

1

0

0

0

2

0

0

0

0

013

PCoe,ARce

00D

1

0

0

0

2

0

0

0

0

017

PCoe,ARce

00E

2008001A

1

0

0

0

2

0

0

0

0

01A

PCoe,ARce

00F

2008001D

1

0

0

0

2

0

0

0

0

01D

PCoe,ARce

010

02700011

0

0

9

3

0

0

0

0

0

011

INC,SVce

011

3

2

0

0

0

0

0

0

0

015

Soe,GRSce

012

00069016

0

0

0

0

1

2

1

1

0

016

ARoe’,RD,DRCE’,PCinc

013

00069014

0

0

0

0

1

2

1

1

0

014

ARoe’,RD,DRce’,PCinc

014

C0080015

6

0

0

0

2

0

0

0

0

015

DRoe,ARce

015

00061016

0

0

0

0

1

2

0

1

0

016

ARoe’,RD,DRce’

016

D0000006

6

4

0

0

0

0

0

0

0

006

DRoe,TRce

017

00069018

0

0

0

0

1

2

1

1

0

018

ARoe’,RD,DRce’,PCinc

018

C0080019

6

0

0

0

2

0

0

0

0

019

DRoe,ARce

019

00061014

0

0

0

0

1

2

0

1

0

014

ARoe’,RD,DRce’

01A

0006901B

0

0

0

0

1

2

1

1

0

01B

ARoe’,RD,DRce’,PCinc

01B

D400001C

6

5

0

0

0

0

0

0

0

01C

DRoe,Ace

01C

2

0

1

3

0

0

0

0

0

020

GRSoe,ADD,SVce

01D

0006901E

0

0

0

0

1

2

1

1

0

01E

ARoe’,RD,DRce’,PCinc

01E

D400001F

6

5

0

0

0

0

0

0

0

01F

DRoe,Ace

01F

1

0

1

3

0

0

0

0

0

020

PCoe,ADD,SVce

020

3

0

0

0

2

0

0

0

0

015

Soe,ARce

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

微地址(H)

微指令(H)

微指令字段(H)

微命令

F0

F1

F2

F3

F4

F5

F6

F7

F8

F9

006

00000A28

0

0

0

0

0

0

0

0

5

028

NOP

028

2

5

0

0

0

0

0

0

0

007

GRSoe,Ace

029

2

0

0

0

2

0

0

0

0

035

GRSoe,ARce

02A

2

5

0

0

2

0

0

0

0

030

GRSoe,ARce,Ace

02B

00000007

0

0

0

0

0

0

0

0

0

007

NOP

02C

1

0

0

0

2

0

0

0

0

033

PCoe,ARce

02D

1

0

0

0

2

0

0

0

0

037

PCoe,ARce

02E

2008003A

1

0

0

0

2

0

0

0

0

03A

PCoe,ARce

02F

2008003D

1

0

0

0

2

0

0

0

0

03D

PCoe,ARce

030

02700031

0

0

9

3

0

0

0

0

0

031

INC,SVce

031

3

2

0

0

0

0

0

0

0

035

Soe,GRSce

032

3

0

0

0

2

0

0

0

0

035

Soe,ARce

033

00069034

0

0

0

0

1

2

1

1

0

034

ARoe’,RD,DRce’,PCinc

034

C0080035

6

0

0

0

2

0

0

0

0

035

DRoe,ARce

035

00061036

0

0

0

0

1

2

0

1

0

036

ARoe’,RD,DRce’

036

D4000007

6

4

0

0

0

0

0

0

0

008

DRoe,TRce

037

00069038

0

0

0

0

1

2

1

1

0

038

ARoe’,RD,DRce’,PCinc

038

C0080039

0

0

0

0

1

2

0

1

0

039

ARoe’,RD,DRce’

039

00061034

0

0

0

0

1

2

0

1

0

034

ARoe’,RD,DRce’

03A

0006903B

6

5

0

0

0

0

0

0

0

03B

DRoe,Ace

03B

D400003C

6

5

0

0

0

0

0

0

0

03C

DRoe,Ace

03C

2

0

1

3

0

0

0

0

0

032

GRSoe,ADD,SVce

03D

0006903E

0

0

0

0

1

2

1

1

0

03E

ARoe’,RD,DRce’,PCinc

03E

D400003F

6

5

0

0

0

0

0

0

0

03F

DRoe,Ace

03F

1

0

1

3

0

0

0

0

0

032

PCoe,ADD,SVce

④.单操作数的微程序

其中,运算指令如下:

指令助记符

入口地址

Inc

071H

Dec

072H

Not

073H

补全执行结果存入目的操作数的微程序

4、输入调机程序

INCFF02H

DEC(0040H)

JMP0030H

5、调试微程序。

运行前的截图如下:

运行后的截图如下:

结果显示,LED输出寄存器自加成功,间接寻址的自减也正确

第二天:

双操作数指令的微程序设计与调试

一、设计目标

完成双操作数指令的微程序设计和验证;取源操作数阶段和取目的操作数阶段相关的寻址方式的微程序设计和验证

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

指令

微程序入口地址

助记符

操作码

二进制

十六进制

MOC

0001B

001000001B

041H

ADD

0010B

001000010B

042H

ADDC

0011B

001000011B

043H

SUB

0100B

001000100B

044H

SUBB

0101B

001000101B

045H

AND

0110B

001000110B

046H

OR

0111B

001000111B

047H

XOR

1000B

001001000B

048H

CMP

1001B

001001001B

049H

TEST

1010B

001001010B

04AH

三、双操作指令微程序

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

测试内容:

MOV#0010H,R1

MOV#0020H,R0

SUB#FFFFH,R1

ADD0010H,(R0)

ADDC#FFFF,(0010H)

运行结果:

首先将数值移动进寄存器中:

然后进行加减法的运算:

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

调试双操作数指令执行微程序,先要写出双操作数指令执行微程序的微地址,微命令,然后写微程序,最后上机调试,判断是否正确,检查微程序运行结果是否正确是一项稍繁琐的事情,需要检查每步的寄存器、标志位、总线上的地址和数据。

但经过几天的熟悉,我们已慢慢熟悉掌握。

第三天:

条件转移指令的微程序设计与调试

一、设计目标

为CPU扩充转移指令,完成转移指令的微程序设计与调试

二、设计任务

(1)根据第二章介绍的微地址形成方法,算出条件转移指令的微程序入口地址

指令助记符

入口地址

JC

068H

JNC

069H

JO

06AH

JNO

06BH

JZ

06CH

JNZ

06DH

JS

06EH

JNS

06FH

JMP

070H

(2)转移指令的微程序设计

第一天已经完成所有单操作入口的设计,其中068h-070h是转移指令的微程序

补全其它操作:

HALT:

058H

NOP:

059H

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

测试程序:

0030H:

MOV#0001H,R1

CMP#0002H,R1

JC003A

MOV#0001H,FF01H

HALT

003AH:

MOV#0080H,FF01H

HALT

运行结果:

无跳转:

有跳转:

运行前

运行后:

四、设计中遇到的问题和解决方法

由于不是很理解转移指令的操作方式,导致了设计测试程序出现问题,后来经过同学的指正,得出了以上三图

第四天:

移位指令的微程序设计与调试

一、设计目标

为CPU扩充移位指令,完成移位指令的微程序设计与调试

二、单操作数运算和移位指令微程序入口地址

入口地址:

指令助记符

入口地址(H)

SAR

061

SHL

062

SHR

063

ROL

064

ROR

065

RCL

066

RCR

067

三、单操作数和移位指令微程序设计

微程序:

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

移位运算微程序

0030:

1601MOV#0001H,R0

0031:

0001

0032:

00C0SHRR0

0033:

0238JCFFFDH(PC)

0034:

FFFD

0035:

0000HALT

运行前:

运行后:

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

由于操作设计简单,依照参考书和指导手册,并没有什么问题,同时我了解了移位类指令的作用方式,位移指令对二进制进行操作,把目的操作数Dst按照与操作码OP对应的规则移动一位,保存移位结果到Dst,并保存移位产生的CF到PSW中。

第五天:

子程序调用、堆栈微程序、中断系统的设计与调试

一、设计目标

完成CALL、RET、PUSH、POP、RETI、EI、DI指令的微程序的设计。

二、PUSH、POP、CALL、RET指令微程序的设计

PUSH

微地址(H)

微指令(H)

微指令字段(H)

微命令

F0

F1

F2

F3

F4

F5

F6

F7

F8

F9

078

0030009B

0

0

0

3

0

0

0

0

0

09B

SVce

09B

6003009C

3

0

A

3

0

3

0

0

0

09C

Soe,DRce

09C

F400009D

7

5

0

0

0

0

0

0

0

09D

SPoe,Ace

09D

02B0009E

0

0

A

3

0

0

0

0

0

09E

DEC,SVce

09E

7C080052

3

7

0

0

2

0

0

0

0

052

Soe,ARce,SPce

POP

入口地址:

微程序:

CALL

入口地址:

微程序:

RET

入口地址:

微程序:

RETI

入口地址:

微程序:

EI(05CH)、DI(05DH)

中断隐指令

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

测试程序1:

0030:

1600MOV#0041H,R0

0031:

0041

0032:

0060PUSHR0

0033:

0620PUSH0040H

0034:

0040

0035:

0648POP(R0)

0036:

0641POPR1

运行结果及分析:

运行前:

运行后:

测试程序2:

0030:

1600MOV#0100H,0000H

0031:

0100

0032:

0000

0033:

0004INC0040H

0034:

0040

0035:

0004EI

0036:

0460INC0041H

0037:

0410

0038:

04A0DEC0043H

0039:

0043

003A:

1A01MOV(0040H),R1

003B:

0040

003C:

HALT

……:

0060:

1820MOVFF0AH,FF02H

0061:

FF0A

0062:

FF02

0063:

A260TEST(R1),0040H

0064:

0040

0065:

0003RETI

0100:

1620MOV#0060H,0001H

0101:

0060

0102:

0001

0103:

1820MOVFF08H,FF02H

0104:

FF08

0105:

FF02

0106:

0004EI

0107:

3820ADDC0040H,0043H

0108:

0040

0109:

0043

010A:

4820SUB0040H,0041H

010B:

0040

010C:

0041

010D:

0460INC0040H

010E:

0044

010F:

0003RETI

结果分析:

执行INC0040H

按键请求中断,跳转到中断向量地址0100H,定义按键1为中断请求键,使红灯亮

执行到0106单元再次跳转到0060H,红灯亮,执行TEST操作,中断返回

继续执行0107的ADDC操作,再进行SUB和INC的操作,中断返回

回到0038H执行DEC操作,接下来进行MOV操作,停机

运行成功

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

写微指令时遇到许多问题,刚开始没弄明白各条指令的意思,然后经过同学的讲解,弄懂了各个指令的意思,通过参考书籍,成功的写出了各个指令的微程序。

但是自己写出的调试程序执行后总会无限循环某几个指令,后来通过询问同学,获得了上面的调试程序,并且理解了这样做的意义,最终运行成功。

第六天检查和考核

一、设计目标

1.将学号后两位保存

2.对学号判断:

小于30则为一班,同时将1压栈,红灯亮;

大于等于30则为二班,同时将2压栈,绿灯亮

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

0030:

1604;MOV#000BH,R4

0031:

000B;

0032:

1604;MOV#001FH,R3

0033:

001F;

0034:

1604;MOV#0001H,R1

0035:

0001;

0036:

1604;MOV#0002H,R2

0037:

0002;

0038:

9604;CMPR3,R4

0039:

0260;JNC0040H

003A:

0040;

003B:

0620;PUSHR2

003C:

1620;MOVR1,FF01H

003D:

FF01;

003E:

0000;HALT

0040:

0620;PUSHR1

0041:

1620;MOVR1,FF02H

0042:

FF02;

0043:

0000;HALT

运行结果正确,但程序过于简洁

总结:

这次关于微程序控制计算机微程序的课程设计,我受益匪浅,通过实验将实际问题和课本内容紧密的联系在一起,将知识运用到了实际之中,更加深入地掌握了微程序设计。

实验过程中按照老师的计划,每天完成一定的量,使我们能够更加清晰的了解计算机内部组成以及数据通路,并且对实例化的语句有所了解,通过自己编写的程序能够实现运算、转移、移位等功能,让我进一步加深了对微程序各种功能的理解。

实验中我们利用调试软件运行自己设计的程序,对自己的程序产生的错误进行改正,这使我们对调试软件的工作方式及程序的设计有了进一步的掌握。

在每天的设计过程中我也遇到了很多问题,但是以前在学习中没有发现的。

为此,我在通过仔细的研究课本及向老师和同学提问,拓宽了自己的知识面。

同时也深感实践对于我们这门学科的重要性。

同时,在经过老师的检查后发现自己在前面的实验中有些疏忽的问题,为此,在最后的两天时间里,对其进行了相应的修改,最后得以完美的测试结果。

另一方面,通过本次课程设计能够联系之前的学习内容,发现自己在理解的基础上,实践能力得到了很大的提升。

同时,也意识到自己存在的不足,在今后的学习中,一定要认真对待,学会多和同学交流,解决自身的知识盲点,让自己的学习能力得到强化。

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

当前位置:首页 > 总结汇报 > 学习总结

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

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