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

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

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

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

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

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

 

计算机组成原理

课程设计报告

 

实验项目:

1、设计一个具有带进位加法和立即数寻址方式的模型机

2、设计一个具有带进位加法和条件跳转的模型机

 

专业:

计算机科学与技术

班级:

09 级 37-3 班

学号:

——————

姓名:

合作:

指导教师:

实验时间:

2011-6-15~~6-17

指令

指令编码

微地址

IN

0000 0000

08

ADC

0001 0000

09

STA

0010 0000

10

OUT

0011 0000

11

JMP

0100 0000

12

助记符号

机器指令码

功    能

IN

0000 0000

Input -> R0

ADC Imm

1110 0000 XXXX XXXX

R0+Imm+CY -> R0

STA addr

0010 0000 XXXX XXXX

R0 -> [addr]

OUT addr

0011 0000 XXXX XXXX

[addr] -> LED

JMP addr

0100 0000 XXXX XXXX

[addr] -> PC

 

实验一:

设计一个具有带进位加法和立即数寻址方式的模型机

 

1、问题描述

 

本题目设计的是一台具有输入、输出、带进位加法、储存和跳转功能的模

型计算机,并写出工作程序和测试数据验证所设计的指令系统。

 

2、设计目标

 

在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定

的寄存器中,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相

加并将结果保存到第一个寄存器,输出结果,并显示。

另外,实现无条件跳转

至开始。

 

3、指令格式

 

4、设计微指令

 

(1)定义指令码,及定义一个下地址为 08H

微 S

地 3

S

2

S

1

S

n

W

E

A

9

A

8    A    B    C    UA5-UA0

 

-2-

 

0

000000 00110 0 0 0 0 0 0 0 0 0 0 0 0 0 1

0

100000 00111 1 0 1 1 0 1 1 0 0 0 0 0 1 0

0

200000 00011 0 0 0 0 0 0 0 1 0 0 1 0 0 0

0

800000 00000 0 1 0 0 0 0 0 0 0 0 0 0 0 1

0

900000 00111 1 0 1 1 0 1 1 0 0 0 0 0 1 1

0

300000 00010 1 1 0 0 0 0 0 0 0 0 0 1 0 0

0

400000 00110 1 0 0 0 1 0 0 0 0 0 0 1 0 1

0

510010 00110 0 1 1 0 1 0 0 0 0 0 0 0 0 1

0

A00000 00111 1 0 1 1 0 1 1 0 0 0 0 1 1 0

0

600000 00011 1 0 0 0 0 0 0 0 0 0 0 1 1 1

0

700000 01010 0 0 0 0 1 0 0 0 0 0 0 0 0 1

0

B00000 00111 1 0 1 1 0 1 1 0 0 0 1 1 0 1

0

D00000 00011 1 0 0 0 0 0 0 0 0 0 1 1 1 0

0

E00000 00010 0 1 0 0 0 0 0 0 0 0 1 1 1 1

0

F00000 01100 0 0 0 0 1 0 0 0 0 0 0 0 0 1

0

C00000 00111 1 0 1 1 0 1 1 0 0 1 0 0 0 0

1

000000 00011 0 1 0 0 0 1 1 0 0 0 0 0 0 1

(3)微程序流程图

 

-3-

 

(4)由编码得到微程序

根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:

$M00018001

$M0101ED82

$M0200C048

$M08001001

$M0901ED83

$M0300B004

$M0401A205

$M05919A01

-4-

 

$M0A01ED86

$M0600E007

$M07028201

$M0B01ED8D

$M0D00E00E

$M0E00900F

$M0F030201

$M0C01ED90

$M1000D181

(5)写工作程序

$P0000

$P0110

$P0222

$P0320

$P0401

$P0530

$P0601

$P0740

$P0800

(6)建立联机操作文件

为了从 PC 机下载工作程序和微程序,需要建立联机操作文件,该文

件是普通的文本文件,扩展名为 TXT,可用记事本来建立的,要求:

a、 测试用的工作程序排在文件的前面,每个内存地址及代码占一行;

-5-

 

b、 微指令代码排在文件的后面,每个微地址及微指令代码占一行;

(7)按照实验电路图连接实验线路

实验采用复杂模型机系统连线图,电路图如下:

B7 BUS UNI T

B0

WE

T4

T2

T1

TS4

TS3

TS2

TS1

F             H24

STATE UNI T          SI GNAL UNI T

B7LDAR

LOAD

PC- B

B0LDPC

ADDRESS UNI T

S3

LDAR

LOAD M18

PC- B

LDPC

M24

SE6

SE1

P( 1)

P( 2)

P( 3)

P( 4)

LDR1

SE6

SE1

P( 1)

P( 2)

P( 3)

P( 4)

LDR1

LOG UNI T      SWITCH UNI T

SWB

SWA

I7 I7

I2 I2

AUJ3

B0

B7

CN

LDDR1

LDDR2

M19

LDDR1

LDDR2

RS- B

RD- B

RI - B

RS- B

RD- B

RI - B

I3

I0

I3

I0

AUJ1ALU- B

ALU- B

LDI R                               LDI R

B0

299- B 299- B

AR          AR

CY ZI

MI CRO- CONTROLLER

D7 I NPUT UNI T

SWJ3

SW-B

D0

LOG UNI T

FC FZ

M16

M17

A8

A9

Y0

MAI N MEM

A7

AD7

D7

D7

Y1

A0AD0D0

W/RW/R EXT BUS

D0

Y2

EX UNI T

B7

RJ1

B0 REG UNI T

D7

D0

CE

D7

W/R

D0

OUTPUT UNI T

(8)运行

(a)系统与 PC 机联机

实验系统安装有一个标准的 DB 型 9 针 RS-232C 串口插座,使用配套的串

行通信电缆分别插在实验系统及 PC 机的串口,即可实现系统与 PC 机的联机操

作。

(b)下载工作程序和微程序

使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。

 

-6-

 

其中,自带电线的实验箱用 NCMP53 软件,启动软件后使用 F4[装载]进行下

载;外接电源线的实验箱用 CMPP 软件,启动软件后在菜单中选择[转储]/[装载]进

行下载。

(c)运行

实验原理图,及数据流程图如下:

 

(9)调试以及调试过程(把写好的程序下载到唐都实验箱,打开软

件复杂模型机的原理图,按步骤点击单步运行,查看运行的指令和

微指令的过程)

调试发现问题:

a、刚开始时点击时,机器不运行。

b、DR1 与 DR2 相加结果不正确。

c、从 R0 到内存 STA 存数指令的存数操作有误,R0-B 打开的同

时把 AR 的 LDAR 也打开了,造成指向内存单元改变。

也就

-7-

 

造成输出时的数据不正确和。

d、修改上一条错误后,误把 R0 数据存在 01 单元,覆盖了原来

的指令,当跳转指令跳转回到原来程序的开头时,执行第二次

就发生了错误。

所以针对以上问题,都一一地找到相应的错误之处和解决方法:

a1、连线有错误,检查后发现错误之处,并改正

b2、改变 s3 到 s0 ,改为 1001(带进位加法)

c3、由于疏忽造成,修改对应的 LDAR 开关编码

d4、修改$P 程序,存到没用的内存

上述问题解决之后,程序便可运行出结果。

(10)运行结果

在上图中会执行 INPUT 到 R0,然后从内存中取出一个数放到

DR2 中,R0 内的数放到 DR1 中,DR1+DR2+cy 放到 R0 中,再将

R0 内的数显示到 LED 上。

 

-8-

助记符号

指令格式

功    能

MOVrs,rd

XXXX Rs Rd

Rs->Rd

ADCrs,rd

XXXX Rs Rd

Rs+Rd+CY -> R0

BZCD

00 00 00 00

D

当 cy=1 或 z=1 时,D-

>PC

否则,顺序执行。

INrd

XXXX 01 Rd

SW->rd

OUTrd

XXXX 10 Rd

Rd -> LED

HALT

XXXX 0000

停机

指令

指令编码

微地址

IN

0011 0000

23

MOV

0010 0000

22

ADC

0001 0000

21

BZCD

0000 0000

20

OUT

0100 0000

24

HALT

0101 0000

25

 

实验二:

设计一个具有带进位加法和条件跳转的模型机

 

1、问题描述

 

本题目设计的是一台具有输入、输出、数据传送、带进位加法、条件跳转,

停机功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。

 

2、指令格式

 

3、设计微指令

 

(1)定义一个下地址为 20H

S

3

S

2

S

1

S

n

W

E

A

9

A

8    A    B    C    UA5-UA0

0

000000 00110 0 0 0 0 0 0 0 0 0 0 0 0 0 1

0

100000 00111 1 0 1 1 0 1 1 0 0 0 0 0 1 0

000000 00011 0 0 0 0 0 0 0 1 1 0 0 0 0 0

-9-

2

2

000000 00110 0 0 0 0 0 0 1 1 0 0 0 0 0 1

1

100000 00111 1 0 1 1 0 1 1 0 0 0 0 0 1 1

0

300000 00011 0 1 0 0 0 1 1 0 0 0 0 0 0 1

2

100000 00110 1 0 0 1 0 0 0 0 0 0 0 1 0 0

0

400000 00110 1 1 0 0 1 0 0 0 0 0 0 1 0 1

0

510010 00110 0 1 1 0 1 0 0 0 0 0 0 0 0 1

2

200000 00110 0 1 0 0 1 0 0 0 0 0 0 0 0 1

2

300000 00000 0 1 0 0 0 0 0 0 0 0 0 0 0 1

2

400000 00100 0 0 0 0 1 0 0 0 0 0 0 0 0 1

2

500000 00110 0 0 0 0 0 0 0 0 1 0 0 1 0 1

(3)画出微程序流程图

 

- 10 -

 

(4) 微程序代码

根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:

$M00018001

$M0101ED82

$M0200C060

$M200180C1

$M1101ED83

$M0300D181

$M2101A404

$M0401B205

$M05919A01

 

- 11 -

 

$M22019201

$M23001001

$M24030201

$M25018025

(5)设计工作程序代码,以测试微程序

$P0035

$P0124

$P0235

$P0314

$P0444

$P0500

$P0607

$P0750

(6)按照实验一建立联机文档并按照书本《计算机组成原理课程设计》的附录

2(系统连线参考图)进行连线。

(7)运行与调试

把程序下载但唐都实验箱进行运行和调试。

通过调试发现的问题:

A、不知道 R1、R2、R0 三个寄存器的关系(请教老师解决)。

 

B、 运行第一条指令后便停滞,不再执行下面的操作。

C、 解决 a 后,从输入模块输入到 R1 或 R2 都不能实现。

D、 条件跳转指令后,执行非设计程序,程序跑飞了。

通过前面的几次实验,已经获得部分解决方法的经验

- 12 -

 

B1、检查连线未能发现问题,估计可能是哪里接触不良,故而

弃之,换实验箱,重新调试,发现可以运行的。

C2、自己未能找出错误所在,请教老师,指出连线上,我们仍

采用的是原来电路图,因而没有把 R1、R2 寄存器连到电路中。

D3、未设置好跳转的方向,最后使其跳转到停机指令,使其处

于停机状态。

(8)运行结果

程序会先从 SW 读一个数放到 R1 中,然后将 R1 内的数

转移到 R0 中,然后将 R0 内的数放到 DR1,R1 中的数放到 DR2,

然后 DR1+DR2+cy 放到 R0 中,然后将 R1 内的数显示到 LED 上,

下一步就进入了停机的死循环。

 

实验总结与心得体会

经过两三天的课程设计,给我个人的感觉有进步、好玩。

为何

如此说呢?

对于我个人来讲,我是比较喜欢实验课的,因为一来实

验课比理论课有意思一点,二来,通过现象和操作更容易理解理论

的内容。

更何况,实践是检验真理的唯一标准,只有通过实践才能

更好的理解和记忆我们的理论知识。

通过此次课程设计,我更深入的了解到了计算机工作的过程和

原理,特别是在指令的执行。

虽然原来在理论课上讲解过,但是单

单从字面上我一直没有完全搞明白,而实验却让人顿悟。

而课程设

计又给我们提供了一个良好的学习机会,我们可以和老师或者同学

尽情地交流,发表自己的观点,在相互交流讨论合作中,相互促进,

- 13 -

 

共同进步,提高了学习的效率和学习的激情。

 

- 14 -

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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