当前位置:文档之家› 微程序控制器实验

微程序控制器实验

微程序控制器实验
计算机科学与技术系
实验报告
专业名称计算机科学与技术
课程名称计算机组成原理
项目名称微程序控制器实验
班级
学号
姓名
同组人员
实验日期
一、实验目的与要求
实验目的
(1)掌握微程序控制器的组成原理
(2)掌握微程序控制器的编制、写入,观察微程序的运行过程
实验要求
(1)实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会很低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说懂得了些什么重要教学内容;
(2)应在实验前掌握所有控制信号的作用,写出实验预习报告并带入实验室;
(3)实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,把自己想不明白的问题通过实验理解清楚;
(4)实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的问题和分析与解决思路。

还应写出自己的心得体会,也可以对教学实验提出新的建议等。

实验报告要交给教师评阅后并给出实验成绩;
二、实验逻辑原理图与分析
画实验逻辑原理图
逻辑原理图分析
微程序控制器的基本任务是完成当前指令的翻译个执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。

它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示成为微指令。

这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。

微程序存储在一种专用的存储器中,称为控制存储器。

三、数据通路图及分析 (画出数据通路图并作出分析)
(1)连接实验线路,检查无误后接通电源。

如果有警报声响起,说明有总线竞争现象,应关闭电源,检查连线,直至错误排除。

(2)对微控制器进行读写操作,分两种情况:手动读写和联机读写。

1、手动读写 地址转移逻辑
微地址寄存器 控制存储器
地址译码 P 字段 控制字段 状态条
...
...
微命令信号
指令寄存器IR OP
手动对微控制器进行编程(写)
1.将时序与操作台单元的开关KK1置为“停止”档,KK3置为“编程”档,KK4置为“控存”档,KK5置为“置数”档
2.使用CON单元的SD05——SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台单元的ST,将IN单元的数据写到该单元的低8位。

3.将时序与操作台单元的开关KK5置为“加1”档。

4.IN单元给出中8位应写入的数据,连续两次按动时序与操作台单元的开关ST,将IN单元的数据写到该单元的中8位。

IN单元给出高8位应写入的数据,连续两次按动时序与操作台单元的开关ST,将IN单元的数据写到该单元的高8位。

5.重复1.2.3.4.四步,将下表的微代码写入到2816芯片中。

地址十六
进制
高五

S3

S0
A字

B字

C字

MA5—
MA0
00 00 00
01 0000
000
000 000 000 000001
01 00 70
70 0000
000
111 000 001 110000
04 00 24
05 0000
000
010 010 000 000101
05 04 B2 0000100011 001 000 000001
手动对微控制器进行校验(读)
1、将时序与操作台单元的开关KK1置为“停止”档,KK3置为“校验”档,KK4置为“控存”档,KK5置为“置数”档
2.使用CON 单元的SD05——SD00给出微地址,连续两次按动时序与操作台单元的ST ,MC 单元的指数指示灯M7——M0显示该单元的低8位。

3.将时序与操作台单元的开关KK5置为“加1”档。

4.连续两次按动时序与操作台单元的ST ,MC 单元的指数指示灯M15——M8显示该单元的中8位。

连续两次按动时序与操作台单元的ST ,MC 单元的指数指示灯M23——M16显示该单元的高8位。

5.重复1.2.3.4.四步,完成对微代码的校验。

如果检验出微代码写入错误,重新写入、校验、直至确认微指令的输入无误为止。

2、联机读写
四、实验数据和结果分析
01 0 1
30 00 14 04 00000 0000
001 010 000 000100
32 18 30 01 00011 0000
011 000 000 000001
33 28 04 01 00101 0000
000 010 000 000001
35 00 00 35 00000 0000
000 000 000 110101
实验结果数据
结果数据分析
01 007070:CON(INS)->IR,P<1>
通过给定的微地址01,根据实验数据选择对应的微指令CON(INS)->IR,P<1>,比较A、B、C三个译码字段的值,选择相应的微命令LDR0和P<1>,实现此次的微指令操作。

04 002405:R0->B
通过给定的微地址04,根据实验数据选择对应的微指令R0->B,比较A、B、C
三个译码字段的值,选择相应的微命令LDB和R0_B,实现此次的微指令操作。

05 04B201: A+B->R0
通过给定的微地址05,根据实验数据选择对应的微指令A+B->R0,比较A、B、C 三个译码字段的值,选择相应的微命令LDR0和ALU_B,实现此次的微指令操作。

30 001404: R0->A
通过给定的微地址30,根据实验数据选择对应的微指令R0->A,比较A、B、C
三个译码字段的值,选择相应的微命令LDA和R0_B,实现此次的微指令操作。

32 183001: IN->R0
通过给定的微地址32,根据实验数据选择对应的微指令IN->R0,比较A、B、C 三个译码字段的值,选择相应的微命令IOR和LDR0,实现此次的微指令操作。

33 080401: R0->OUT
通过给定的微地址33,根据实验数据选择对应的微指令R0->OUT,比较A、B、C 三个译码字段的值,选择相应的微命令R0_B和IOW,实现此次的微指令操作。

35 000035: NOP
通过给定的微地址35,根据实验数据选择对应的微指令NOP,执行停机微命令。

五、实验问题分析、思考题与小结
问题分析
1、手动读写浪费时间很长。

对微控器进行读写操作时,可以手动读写,也可以联机读写。

在第一次实验时,进行的是手动读写,手动读写时需先读IN单元给出低8位数据,然后将时序与操作台单元的开关KK5置为“加1”档,继续读中8位,高8位。

由于操作繁琐,经常读写错误,导致重头开始重新读写,浪费了很多时间。

2、OUT单元的显示值不是01000110。

进行本机运行时,操作不正确,导致OUT单元显示值错误。

思考题
1.当前的数据通路是由哪条微指令实现的?
R0->A。

2.当前微指令有几个微命令有效?
两个微命令有效,分别是R0_B#和LDA。

3.当前微指令的微地址?
30。

4.当前微指令是解释执行哪条机器指令的?
ADD。

5.当前的微程序有几条微指令?
三条。

6.基本模型机实验执行了几个微程序?实现了哪些功能?
四个,实现了IN->R0,R0+R0->R0,R0->OUT,停机等功能。

小结
除了连线错误,出现错误的原因也就是操作,或者是线路出现短路现象,而线不通这一问题是出错很难排查的。

得分(百分制)。

相关主题