基本模型机的设计与实现.docx

上传人:b****6 文档编号:7380113 上传时间:2023-05-11 格式:DOCX 页数:24 大小:22.67KB
下载 相关 举报
基本模型机的设计与实现.docx_第1页
第1页 / 共24页
基本模型机的设计与实现.docx_第2页
第2页 / 共24页
基本模型机的设计与实现.docx_第3页
第3页 / 共24页
基本模型机的设计与实现.docx_第4页
第4页 / 共24页
基本模型机的设计与实现.docx_第5页
第5页 / 共24页
基本模型机的设计与实现.docx_第6页
第6页 / 共24页
基本模型机的设计与实现.docx_第7页
第7页 / 共24页
基本模型机的设计与实现.docx_第8页
第8页 / 共24页
基本模型机的设计与实现.docx_第9页
第9页 / 共24页
基本模型机的设计与实现.docx_第10页
第10页 / 共24页
基本模型机的设计与实现.docx_第11页
第11页 / 共24页
基本模型机的设计与实现.docx_第12页
第12页 / 共24页
基本模型机的设计与实现.docx_第13页
第13页 / 共24页
基本模型机的设计与实现.docx_第14页
第14页 / 共24页
基本模型机的设计与实现.docx_第15页
第15页 / 共24页
基本模型机的设计与实现.docx_第16页
第16页 / 共24页
基本模型机的设计与实现.docx_第17页
第17页 / 共24页
基本模型机的设计与实现.docx_第18页
第18页 / 共24页
基本模型机的设计与实现.docx_第19页
第19页 / 共24页
基本模型机的设计与实现.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基本模型机的设计与实现.docx

《基本模型机的设计与实现.docx》由会员分享,可在线阅读,更多相关《基本模型机的设计与实现.docx(24页珍藏版)》请在冰点文库上搜索。

基本模型机的设计与实现.docx

基本模型机的设计与实现

基本模型机的设计与实现课程设计报告收藏

一、实验基本任务

1、由基本单元电路构成一台基本模型机。

2、设计五条机器指令,并编写相应的微程序。

3、调试指令和模型机使其在微程序的控制下自动产生各部件单元的控制信号正常工作。

二、设计方案

1、硬件设计

(1)设计微程序控制电路

微程序控制器的组成:

控制存储器:

EPROM2816*3,8D触发器74ls273*2,4D触发器74ls74*3;微指令寄存器格式:

18位微指令,6位微地址。

(2)设计时钟信号源和时序控制电路

时钟信号源的组成:

时基电路555,可触发单稳态多谐振荡器74ls237*2,输出频率为330-580Hz的方波信号。

时序控制电路:

4D触发器74ls175*1组成移位寄存器电路。

(3)设计主存储器

主存电路的组成:

6264存储器(8K*8位)*3,地址寄存器:

74ls273*1,三态门:

74ls245*1。

2、微控制设计

(1)实现存储器读操作;

拨动总清开关后,置控制开关SWC、SWA为“00”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。

(2)实现存储器写操作;

拨动总清开关后,置控制开关SWC、SWA为“01”时,按要求连线后,再按动“启动运行”开关,可对主存储器RAM连续手动写入。

(3)实现程序运行操作。

拨动总清开关后,置控制开关SWC、SWA为“11”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。

3、机器指令设计

(1)输入指令:

in;输入外部开关量的状态,送入寄存器R0。

(2)二进制加法指令:

addaddr;

(3)存数指令:

staaddr;

(4)输出指令:

outaddr;

(5)无条件转移指令:

jmpaddr;

三、设计电路原理图(说明各器件的功能作用)

设计电路原理图如图1所示:

图l数据通路框图

四、系统原理图(说明整机的工作过程)

系统原理图如附图1所示。

部件实验过程中,各部件单元的控制信号是认为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。

这里,实验计算机数据通路的控制将由微程序控制器开完成,CPU从内存中取出一条机器只到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

1、有关微控制器部分在算术运算实验中以详细介绍。

、处存储器的读、写和运行2

为了想主存储器的RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。

存储器读操作:

拨动总清开关后,置控制开关SWC、SWA为“00”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。

存储器写操作:

拨动总清开关后,置控制开关SWC、SWA为“01”时,按要求连线后,再按动“启动运行”开关,可对主存储器RAM连续手动写入。

运行程序:

拨动总清开关后,置控制开关SWC、SWA为“11”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。

上述三条控制指令用两个开关SWC、SWA的状态来设置,其定义如下:

SWC

SWA

控制台指令

0

0

1

0

1

1

读内存

写内存

启动程序

根据以上要求设计数据通路框图,如图1所示。

微代码定义如表1所示。

表1基本模型机微指令结构图

微程序

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

控制信号

S3

S2

S1

S0

M

CN

RD

M17

M16

A

B

P

uA5

uA4

uA3

uA2

uA1

uA0

A字段

B字段

P字段

15

14

13

控制信号

12

11

10

控制信号

9

8

7

控制信号

0

0

0

0

0

0

0

0

0

0

0

1

LDRI

0

0

1

RS_G

0

0

1

P1

0

1

0

LDDR1

0

1

0

0

1

0

0

1

1

LDDR2

0

1

1

0

1

1

1

0

0

LDIR

1

0

0

1

0

0

P4

1

0

1

LOAD

1

0

1

ALU_G

1

0

1

1

1

0

LDAR

1

1

0

PC_G

1

1

0

LDPC

系统涉及到的微程序流程见图2,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。

由于“取指令”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。

本机用指令寄存器的高4位(I7—I4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。

控制台操作为P4测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。

当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。

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

图2微程序流程图

表2二进制代码表

本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(INPUT);另一种是两位十六进制数LED数码管,作为输出设备(OUTPUTUNIT)。

在输入时,二进制开关数据直接经过三态门送到总线上。

只要开关状态不变,输入的信息也不变。

输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码块显示。

3、指令寄存器介绍

指令寄存器用来保存当前正在执行的一条指令。

当执行一条指令时,先把它从内存取到缓冲寄存器,然后再传送到指令寄存器。

指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P

(1),通过节拍脉冲T4的控制以便识别所要求的操作。

“指令译码器”根据指令的操作码进行译码,强置微控制单元的微地址,使下一条微指令指向相应的微程序首地址。

4、输入/输出设备

本系统有两种外部I/O设备,一种是二进制代码开关KD0~KD7,它作为输入设备INPUT;另一种是数码显示块,它作为输出设备OUTPUT。

例如:

输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。

输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输入锁存器,驱动数码块显示。

5、设计指令

根据基本模型机的硬件设计五条机器指令:

外部输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。

指令格式入下:

助记符机器指令码说明

IN00000000;“外部开关量输入”KD0~KD7的开关状态→R0

ADDaddr00010000××××××××;R0+[addr]→R0

STAaddr00100000××××××××;R0→[addr]

OUTaddr00110000××××××××;[addr]→BUS

JMPaddr01000000××××××××;[ADDR]→PC

说明:

指令IN为单字节指令,其余均为双字节指令,××××××××addr对应的主存储器二进制地址码。

6、基本模型机监控软件的设计

本模型机监控软件设计主要完成从输入设备读入数据,进行简单算术运算后,将结果存入内存的某个单元,最后通过输出设备输出结果。

监控软件详细如下:

地址内容助记符说明

0000000000000000IN;“INPUTDEVICE”→R0

0000000100010000ADD[0AH];R0+[0AH]→R0

0000001000001010

0000001100100000STA[0BH];R0→[0BH]

0000010000001011

0000010100110000OUT[0BH];[0BH]→BUS

0000011000001011

0000011101000000JMP[00H];00H→PC

0000100000000000

00001001

0000101000000001;自定义参加运算的数

00001011;求和结果存放单元

五、实验步骤

1.根据该模型机的指令系统,编写一段程序。

这里给出两个参考程序。

参考程序一:

本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。

每次循环过程中,可以使输入设备数据改变,考察输出显示的结果(请实验者考虑:

如何修改程序,使程序只执行一次从输入设备取出数据,送出输出设备显示)。

设计机器指令程序如下(机器码和地址为十六进制数据)。

地址内容助记符说明

0000IN;输入开关数据→R0

[08]

→R0;STA[08H]2001

0208;地址

0330OUT[08H];[08H]→BUS

0408;地址

0540JMP[00H];00H→PC

0600;跳转地址

参考程序二:

本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。

本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。

设计机器指令程序如下(机器码和地址为十六进制数据)。

地址内容助记符说明

0000IN;输入开关数据→R0,采集数据

0110ADD[0AH];R0+[0AH]→R0,输入数据与指定数据相加

020A;地址

0320STA[0BH];R0→[0B]

040B;地址

0530OUT[0BH];[0BH]→BUS,输出显示

060B;地址

0740JMP[00H];00H→PC

0800;跳转地址

0A01;加数,可自定

0B;求和结果保存在0B单元

连接实验线路2.

3.写程序

对于本实验箱可以用两种方法来写入程序。

方法一:

联机读/写程序

按照规定格式,将机器指令及表2-2微指令二进制表编辑成十六进制的规定格式文件。

微指令格式中的微指令代码为将表2-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。

使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。

其中参考程序一对应的文件名为“基本模型机1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”(联机软件的使用方法参看附录2)。

方法二:

手动写入

(1)先将机器指令对应的微代码正确地写入28C16中,由于在实验1.7微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2-5校验正确后就可使用。

(2)使用控制台WRITE和READ微程序进行机器指令程序的装入和检查,其操作如下:

A.使SIGNALUNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROLUNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN”状态。

B.拨动开关单元的总清开关CLR(1à0à1),微地址寄存器清零,程序计数器清零。

然后使开关单元的SWB、SWA开关设置为“01”,按动一次控制台单元的触动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容(输入单元)置为要写入的机器指令的内容,按动两次START键后,即完成该条指令的写入。

若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。

所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。

C.校验。

拨动SWITCH单元的总清开关CLR(1à0à1),微地址清零。

PC程序计数

器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROLUNIT的触动开关START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。

不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。

每次在微地址灯显示为“010000”时,是将当前地址中的机器指令写入到输出设备中显示。

参考程序一的机器指令:

$P0000

$P0120

$P0208

$P0330

$P0408

$P0540

$P0600

参考程序二的机器指令:

$P0000

$P0110

$P020A

$P0320

$P040B

$P0530

$P060B

$P0740

$P0800

$P0A01

微程序(以上两程序公用):

$M00018110

$M0101ED82

$M0200C048

$M0300E004

$M0400B005

$M0501A206

$M06959A01

$M0700E00D

$M08001001

$M0901ED83

$M0A01ED87

$M0B01ED8E

$M0C01ED96

$M0D028201

$M0E00E00F

$M0F00A015

$M1001ED92

$M1101ED94

$M1200A017

$M13018001

$M14002018

$M15070A01

$M1600D181

$M17070A10

$M18068A11

4.运行程序

方法一:

联机运行程序

首先使各个开关的状态为:

SIGNALUNIT中的SP03开关设置为“STEP”状态,SP04开关设置为“RUN”状态;CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”

状态;SWITCH单元的开关SWB、SWA为“11”。

使SWITCH单元的总清开关CLR(1à0à1)清零后,程序首址为00H。

通过联机软件进入调试界面(其操作方法参见附录2系统联机操作软件说明),可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。

方法二:

手动运行程序

(1)单步运行程序

A.使CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态,SIGNAL

UNIT中的SP03为“STEP”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

B.拨动SWITCH单元的总清开关CLR(1à0à1),微地址清零,程序计数器清零,程序首址为00H。

C.单步运行微指令,每按动一次CONTROLUNIT的START触动开关,即单步运行一条微指令。

对照微程序流程图2-2,观察微地址显示灯MA5-MA0是否和流程一致。

D.当运行结束后,可检查运行结果是否和理论值一致。

如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。

)连续运行程序2(.

A.使CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态,SIGNAL

UNIT中的SP03为“RUN”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

B.拨动SWITCH单元的总清开关CLR(1à0à1),微地址及程序计数器清零,然后按动CONTROLUNIT的START触动开关,系统连续运行程序,稍后将SIGNALUNIT中的SP04拨至“STOP”时,系统停机。

C.停机后,可检查运行结果是否正确。

如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。

六、实验结果

首先验证微控制器的存储特性。

将编程开关置为“写入”状态,写入如表2微地址为06~0D的微代码。

每写入一条指令,按一下“启动运行”开关。

再将微地址和总清开关置0,编程开关置为“读”状态,即可验证是否存储正确。

若有错误,则需检查连线或者是重新输入。

经实验,成功显示。

最后,将编程开关置为“运行”状态,即可运行我们写入的微程序。

经实验,结果显示正确。

七、实验心得

通过紧张有序的两天的课程设计实践,不仅让我对计算机的基本组成、简单运算器的数据传送通路组成、静态随机存取存储器RAM工作特性及数据的读写方法、时序信号发生电路组成原理、微程序控制器的设计思想和组成原理、微程序的编制、写入过程有了进一步的了解,

也让我觉得自己的动手能力有了很大的提高;自信心也增强了,在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。

起初第一次讲解时,由于对计算机总体结构不怎么熟悉、没认真预习、思考不够认真、对书本的知识不够扎实以及以前没有接触过所以缺乏经验,所以不知道从哪里开始着手,第一天上午结束的时候还是一脸的茫然,不知道这次课程设计到底在做什么,整体上没有一点把握。

但在设计时随着老师的一次次详细的讲解,我对以前做过的实验重新看了一遍,在第二次讲解前

及同学的不断讨论,通过自己不断思考,我渐渐的才对这次课程设计有了初步了解,到1.5.6三个基础实验完成后,自己的思路也慢慢清晰,自信心也增强了。

接下来,关于写程序、微程序时主要考验的是我的耐心,特别是最后对照二进制微代码表输入地址时,不仅要检查读出的微代码是否与写入的相同,在这些操作中考验的就是一个人的耐心,万一哪里疏忽了,就很容易出错,一旦出错就要从第一步重新开始,造成大量时间浪费,很多工作都将重做。

所以我们在做这些小的步骤时一定要耐心。

最后是验收,通过验收我们可以对许多知识能够重新和彻底理解,就象验收时虽然好几个问题刚开始都答不出来,但通过老师的讲解,感觉自己搞懂了很多.

通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。

还有通过这次实践也让我懂得了:

学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。

因此,我会认真地对待我的每一次实验。

本文来自CSDN博客,转载请标明出处:

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

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2