微程序控制器模型机的设计与分析Word文档格式.docx

上传人:b****7 文档编号:22076422 上传时间:2023-02-02 格式:DOCX 页数:19 大小:1.79MB
下载 相关 举报
微程序控制器模型机的设计与分析Word文档格式.docx_第1页
第1页 / 共19页
微程序控制器模型机的设计与分析Word文档格式.docx_第2页
第2页 / 共19页
微程序控制器模型机的设计与分析Word文档格式.docx_第3页
第3页 / 共19页
微程序控制器模型机的设计与分析Word文档格式.docx_第4页
第4页 / 共19页
微程序控制器模型机的设计与分析Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

微程序控制器模型机的设计与分析Word文档格式.docx

《微程序控制器模型机的设计与分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《微程序控制器模型机的设计与分析Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

微程序控制器模型机的设计与分析Word文档格式.docx

微地址寄存器6位,用三片正沿触发的双D触发器(74)组成,它们带有清“0”端和预置端。

在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。

当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现

对存储器(包括存储器和控制存储器)的三种操作:

编程、校验、运行。

考虑到对于存储器(包

括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利

的手动操作方式。

以向00H单元中写入332211为例,对于控制存储器进行编辑的具体操作步骤

如下:

首先将KK1拨至‘停止’档、KK3拨至‘编程’档、KK4拨至‘控存’档、KK5拨至

‘置数’档,由CON单元的SD05——SD00开关给出需要编辑的控存单元首地址(000000),

IN单元开关给出该控存单元数据的低8位(00010001),连续两次按动时序与操作台单元的开关

ST(第一次按动后MC单元低8位显示该单元以前存储的数据,第二次按动后显示当前改动的

数据),此时MC单元的指示灯MA5——MA0显示当前地址(000000),M7——M0显示当前数

据(00010001)。

然后将KK5拨至‘加1’档,IN单元开关给出该控存单元数据的中8位(00100010),

连续两次按动开关ST,完成对该控存单元中8位数据的修改,此时MC单元的指示灯MA5—

—MA0显示当前地址(000000),M15——M8显示当前数据(00100010);

再由IN单元开关给

出该控存单元数据的高8位(00110011),连续两次按动开关ST,完成对该控存单元高8位数

据的修改此时MC单元的指示灯MA5——MA0显示当前地址(000000),M23——M16显示当

前数据(00110011)。

此时被编辑的控存单元地址会自动加1(01H),由IN单元开关依次给出

该控存单元数据的低8位、中8位和高8位配合每次开关ST的两次按动,即可完成对后续单元

的编辑。

编辑完成后需进行校验,以确保编辑的正确。

以校验00H单元为例,对于控制存储器进行校验的具体操作步骤如下:

首先将KK1拨至‘停止’档、KK3拨至‘校验’档、KK4拨至‘控存’档、KK5拨至‘置数’档。

由CON单元的SD05——SD00开关给出需要校验的控存单元地址(000000),连续两次按动开关ST,MC单元指示灯M7——M0显示该单元低8位数据(00010001);

KK5拨至‘加1’档,再连续两次按动开关ST,MC单元指示灯M15——M8显示该单元中8位数据(00100010);

再连续两次按动开关ST,MC单元指示灯M23——M16显示该单元高8位数据(00110011)。

再连续两次按动开关ST,地址加1,MC单元指示灯M7——M0显示01H单元低8位数据。

如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。

位于实验平台MC单元左上角一列三个指示灯MC2、MC1、MC0用来指示当前操作的微程序字段,分别对应M23——M16、M15——M8、M7——M0。

实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关KK4拨至‘减1’档,则每次随着开关ST的两次拨动操作,字节数依次从高8位到低8位递减,减至低8位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。

微指令字长共24位,控制位顺序如表3-2-1:

 

其中MA5…MA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。

C字段中的P<

1>

为测试字位。

其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图3-2-3所示,图中I7…I2为指令寄存器的第7…2位输出,SE5…SE0为微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR单元的INS_DEC(GAL20V8)中实现。

从图3-2-2中也可以看出,微控器产生的控制信号比表3-2-1中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。

本实验除了用到指令寄存器(IR)和通用寄存器R0外,还要用到IN和OUT单元,从微控器出来的信号中只有IOM、WR和RD三个信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图3-2-4所示。

IR单元的原理图如图3-2-5所示,R0单元原理如图3-2-7所示,IN单元的原理图见图2-1-3所示,OUT单元的原理图见图3-2-6所示。

本实验安排了四条机器指令,分别为ADD(00000000)、IN(00100000)、OUT(00110000)

和HLT(01010000),括号中为各指令的二进制代码,指令格式如下:

助记符机器指令码说明

IN00100000INR0

ADD00000000R0+R0R0

OUT00110000R0OUT

HLT01010000停机

实验中机器指令由CON单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图3-2-8所示。

几条机器指令对应的参考微程序流程图如图3-2-9所示。

图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用16进制表示。

向下的箭头指出了下一条要执行的指令。

P<

为测试字,根据条件使微程序产生分支。

将全部微程序按微指令格式变成二进制微代码,可得到表3-2-2的二进制代码表。

4实验步骤及流程图和解释

1.按图3-2-10所示连接实验线路,仔细查线无误后接通电源。

如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。

实验平台单元的连接图

2.对微控器进行读写操作,分两种情况:

手动读写和联机读写。

这里我采用联机读写方式。

2)联机读写

(1)将微程序写入文件

联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格式写入到以TXT为后缀的文件中,微程序的格式如下:

如$M1F112233,表示微指令的地址为1FH,微指令值为11H(高)、22H(中)、33H(低),本次实验的微程序如下,其中分号‘;

’为注释符,分号后面的内容在下载时将被忽略掉。

(2)写入微程序

用联机软件的“【转储】—【装载】”功能将该格式(*.TXT)文件装载入实验系统。

装入过程中,在软件的输出区的‘结果’栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。

(3)校验微程序

选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示。

检查微控器相应地址单元的数据是否和表3-2-2中的十六进制数据相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令,先用鼠标左键单击指令区的‘微存’TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。

3.运行微程序

运行时也分两种情况:

本机运行和联机运行。

我也采用联机运行方式。

2)联机运行

联机运行时,进入软件界面,在菜单上选择【实验】-【微控器实验】,打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图3-2-8所示。

将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的MAR)为000001时,置CON单元SD27…SD20,产生相应的机器指令,该指令将会在下个T3被打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。

仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。

也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。

按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确。

下面是程序流程图和解释:

这是上述步骤做完的系统可以正常开始运行的初始流程图。

这里的IR是指令寄存器。

1.我把03作为初始数据作输入运算。

00100000为输入语句。

IR送入00,指令译码器译成01,执行01代码,控制存储器送入007070,MAR送入30。

IR送入20,此时不译码。

根据p<

I>

将执行32,执行In操作,将007070送到MCR,并将183101送到控制存储器,NMA变为01。

MAR转为01,准备回到初始状态01,NMA为30,接下来准备执行相加,此时执行IN->

RO.此时门IOR#=LDR0=1。

上述3图执行了把输入的03送入到通用寄存器Ro的步骤。

准备执行下一周期。

2.下面开始相加步骤。

相加指令为00000000.

根据输入的指令,MAR被译码成30,执行相加指令。

然后NMA为04,准备执行RO->

A.控制存储器存入001404。

执行RO->

A,MAR此时为04,NMA为05,控制存储器存入002405,准备执行

RO->

B.此时门RO_B#=T4=LDA=1。

NMA为01,准备再次回到初始状态,控制存储器存入04B201,执行RO->

B,并准备执行A+B->

RO.

此时门RO_B#=T4=LDB=1。

执行A+B->

RO,此时RO为06,,MAR为01,NMA为30.此时s1,s2,s3,s4为相加操作代码,门ALU_B#=LDR0=1.

3.做输出运算。

此时输入的指令为00110000,根据输入的指令将执行输出操作。

IR为30,根据P<

的结果,MAR为33,控制存储器存入280401,NMA为01,准备将RO输出。

将RO输出至OUT,MAR为01,NMA为30,又准备回到初始状态。

此时门Ro_B#=low#=1.

4.执行停机操作。

输入指令为01010000

与前面步骤类似。

在MAR=30后,根据P<

NMA将转为35,然后执行停机操作。

5课程设计总结

1.通过了此次的实验,我已经对整机概念有了一个初步的了解,对微程序控制器的运行有了更深入的探究,并通过实验使课程所学的知识有了一个更深的印象,并把这些知识付诸以实践。

2.通过这次实验我还意识到了团队协作的优势,同学间的互相帮助不仅加快了实验的完成速度,还加深了同学间的友谊。

指导教师签名:

唐建雄年月日

系主任(或责任教师)签名:

年月日

附件1:

课程设计题目(按“成绩登记表”中学生名单顺序排列)

题目一:

微程序控制器模型机的设计与分析。

题目二:

cpu与简单模型机的设计与分析。

题目三:

硬布线控制器模型机的设计与分析。

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

当前位置:首页 > 高等教育 > 经济学

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

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