CPU与简单模型机设计实验实验报告.docx

上传人:b****7 文档编号:9401902 上传时间:2023-02-04 格式:DOCX 页数:15 大小:504.31KB
下载 相关 举报
CPU与简单模型机设计实验实验报告.docx_第1页
第1页 / 共15页
CPU与简单模型机设计实验实验报告.docx_第2页
第2页 / 共15页
CPU与简单模型机设计实验实验报告.docx_第3页
第3页 / 共15页
CPU与简单模型机设计实验实验报告.docx_第4页
第4页 / 共15页
CPU与简单模型机设计实验实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

CPU与简单模型机设计实验实验报告.docx

《CPU与简单模型机设计实验实验报告.docx》由会员分享,可在线阅读,更多相关《CPU与简单模型机设计实验实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

CPU与简单模型机设计实验实验报告.docx

CPU与简单模型机设计实验实验报告

实验报告

 

实验目的:

(1)掌握一个简单CPU的组成原理。

(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。

(3)为其定义五条机器指令,编写相应的徼程序,并上机调试掌握整机概念。

二、实验内容:

本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。

CPU由运算器CALU)、微程序控制器(HC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1所示。

这个CPU在写入相应的徽指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,叹构成一个简单的模型计算机。

图1・4・1基玄CPU构成原理图

除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。

系统的程

序计数器(PC)由两片7415161和一片74LS245构成,其原理如图1-4-2所示。

PCB为三

态门的输出使能端,CLR连接至CON单元的总清端CLR,按下CLR按钮,将使PC清績LDPC

和T2相与后作为计数舉的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线上的数据打入PC。

图卜4・2程序计数g{PC)原理图

JMP(无条件转移)■HLT(停机),其指令

本模型机和前面微程痔控制器实验相比,新增加一条跳转指令JMP,共有五条指令:

IN(输入)、ADD(二进制加法)'OUT(输出)、

格式如下(高4位为操作码〉:

其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。

徹程序控制器实验的指令是通辻手动给出的,现在要求CPU自动从存储器读取指令并执行。

根据叹上要求,设计数据通路图,如图1-4-3所示。

本实程在前一个实验的基础上増加了三个部件,一是PC(程序计数器),另一个是AR(地址寄存器),还有就是HEM(主存)。

因而在微指令中应増加相应的控制位,其徽指令格式如表1-4-1所示0

S3

图1-4・3数据通路图

系统涉及到的徽程序流程见图1-4-4所示,当拟定“取指”微指令时,该微指令的判别测试字段为P<1>测试。

指令译码原理见图1-3-3所示,由于“取指”徼指令是所有徽程序都使用的公用微指令,因此P<1>的测试结果出现多路分支。

本机用指令寄存器的高6位(IR7-IR2)作为测试条件,出现5路分支,占用5个固定緻地址单元,剩下的其它地方就可叹一条微指令占用控存一个徹地址单元随意填写,徽程序流程图上的单元地址为16进制。

当全部微程序设计完毕后,应将每条徹指令代码化,表1-4-2即为将图1-4-2的徹程序流程图按微指令格式转化而成的“二进制微代码表"0

00

简单模型机徽程序流程图

®1-4-4

耒卜4・2二进制徽代码表

Y地址

十六进制

高五位

S3-S0

A字段

B字段

c字段

MA5-MA0

00

000001

00000

0000

000

000

000

000001

01

006D43

00000

0000

110

no

101

000011

03

107070

00010

0000

111

000

001

110000

>

04

002405

00000

0000

010

010

000

oootoi

7

05

01B201

00000

1001

oil

001

000

000001

■>

1D

105141

00010

0000

lOI

000

101

000001

30

001404

00000

0000

00!

010

000

000100

1

32

183001

00011

0000

oil

000

000

000001

280101

00101

0000

000

010

000

000001

35

000035

00000

0000

000

000

000

iiotoi

3C

006D5D

00000

0000

no

no

101

011101

设计一段机器程序,要求从IN单元读入一个数据,存于R0,将R0和自身相加.结果存于R0,再将R0的值送OUT单元显示。

根据要求可以得到如下程序,地址和内容均为二进制数。

 

地址

内容

助记符

说明

00000000

00100000

;START;INRO

从IN单元读入数据送RO

00000001

00000000

;ADDRO.RO

RO和自身相加,结果送RO

00000010

00110000

;OUTRO

RO的值送OUT单元显示

00000011

«

JMPSTART跳转至

OOH地址

00000100

00000000

00000101

01010000

;HLT

停机

.实验步骤

«

$M00000001

;NOP

$M01006D43

;PC-〉AR・PC加1

$M03107070

;MEM・〉IR,P<1>

$M04002405

;R0->B

$M0504B201

;A加B・〉RO

$MID105141

;MEM->PC

$M30001404

;RO->A

$M32183001

;IN-〉RO

$M33280401

;RO->OUT

$M35000035

;NOP

$M3C006D5D

;POMR.PC加1

本次实验程序如下,程序中分号';'为注释符,分号后面的內容在下载时将被忽略掉:

;//*************************************//

;////

;//CPU与简单模型机实验指令文件//

;////

************林**********************

./*StartOfMainMemoryData*****

;START:

INRO

;//**EndOfMicrocontrollerData**/

选择联机软件的“【转储】一【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程痔和微程序写入指定单元。

选择联机软件的“【转储】一【刷新指令区】”可以读出下位机所有的机器指令和徽指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改徹指令为例,先用鼠标左键单击指令区的'緻存'TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。

运行程序

联机运行

将MC单元的编程开关置为'运行'档,MEM单元的编程开关也置为'运行'档,进入软件界面,选择菜单命令“【实验】一【简单模型机】",打开简单模型机数据通路图。

按动CON单元的总清按钮CLR,然后通过软件运行程序,选择相应的功能命令,即可联机

运行、监控、调试程序,当模型机执行完JMP指令后•检查OUT单元显示的数是否为17单

元值的2倍。

在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、

数据总线以及微指令显示和下位机是否一致。

四、具体实现:

(1)打开IN单元,输入操作数(以03为例人

启动程序计数器(PC),然后自动启动加I操作,将指令地址放到地址寄存器(AR)

(2)从存储黠当中读取指令,并将它存到指令寄存器(IR)当中,然后对指令进行编译处

理,形成控制信号,来控制各个部件的工作;

CPU

ALU3*

RO

50

计/—\

BftJ

use

T

LDftP

PCU

PC■J*茫

LSR

l£WM

3C

rn-r

OUT•

IN=

 

T>

LDWI

w»1

I4A4-

IOP*aw

(3)启动读操作,将IN单元当中的操作数(03〉读到R0寄存器中

 

(4)接着从PC中取出第二条指令的地址,并自动加1,并将它存放到AR当中;

CPU

PC..

FZrALU«

Sr"/—

•■»八'

■;;^AcH81

I■

AR=

ivi

一—口

rso

—门〒

H-ra

UPt

UM

OUT<

poew

ROy

B--i

Loe

UWM

ZU

IR・

19

一LV

i・阳

—ROQfi■JJ

_*bOW

「;、&厂

MP«IZMICP*PUAV

(5)从存储器中取出第一条指令,并将它存放到IR中,

并进行编译

kX.#

»ow

冷址卷钱

(6)将存储舉RO的03值送到A和B中;

 

(7)启动ALU运算器,执行加操作,并将运算结果送往R0当中;

 

(8)同样从PC当中第三条(将运算结果OUT单元显示力取指令流程与上述指令上述类似;

 

 

堆址恳线

 

 

5.项目要求及分析:

1、试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为STA.LAD和SUB,指令操作码分别为十六进制的60、70和80。

设计流程图如下:

(红笔为修改的重点部分)

地址

十六进制

高五位

S3-S0

A字段

B字段

c字段

MA5-MA0

00

000001

00000

0000

000

000

000

000001

01

006D43

00000

0000

110

110

101

000011

03

107070

t

00010

0000

111

000

001

110000

04

002405

00000

0000

010

010

000

000101

04

006D45

00000

0000

110

110

101

000101

05

04B201

00000

1001

on

001

000

000001

05

102406

1

00010

0000

010

010

000

000110

06

04B201

00000

1001

Oil

OOi

000

000001

07

006D48

%

00000

0000

no

110

101

001000

08

102409

00010

0000

010

010

000

001001

09

05B201

00000

101!

on

001

000

000001

0A

203001

00100

0000

Oil

000

000

000001

0B

100401

00010

0000

000

010

000

000001

1D

105141

00010

0000

101

000

101

000001

30

001404

00000

0000

001

010

000

000100

32

183001

00011

0000

on

000

000

000001

33

280401

00101

0000

000

010

000

000001

35

000035

00000

0000

000

000

000

110101

36

006D4A

00000

0000

no

110

lOi

001010

37

006D4B

00000

0000

no

no

101

001011

3C

006D5D

00000

0000

110

no

101

011101

6.所遇问题及解决方法:

这次实验含有部分的验证性实验,此部分与以往无较大差别,较为好做,易于完成。

但同时此实验还含有难度较高的设计性部分,因而做起来较为头痛辛苦。

在设计程序流程图时遇到很多困难,在编程时亦遇到汇编语言和髙级语言之间的转换、汇编语言和微指令之间的转换,均因无经验产生了许多问题,通过问老师、问学姐、间同学,经由他们的指导与帮助,初步完成了设计性实验,并且进行了初步的验证,基本解决了问题。

从此次实验中不难看出,设计性实验对于目前的我还是存在较多的挑战,虽有了相应的理论知识,但是理论与实际的差距还是较为明显的,将理论知识应用于实际的问题还存在较大的障碍。

在今后的学习中,应该更加重视理论向实际的转换,并且自己多思考多动手,不能总是纸上谈兵,从而提升自己的实践动手能力,具备相应的实际应用能力。

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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