1、目的与要求
1)掌握时序信号发生电路组成原理。
2)掌握微程序控制器的设计思想和组成原理。
3)掌握微程序的编制、写入,观察微程序的运行。
2、实验设备
ZYE1601B计算机组成原理教学实验箱一台,排线若干。
3、实验步骤与源程序
l) 实验接线如下:
① 跳线器J20、J21连上短路片;
② 跳线器J16上SP连H23;
③ UJ1连UJ2。
2) 根据机器指令画出对应的微程序流程图如下:
3)根据微程序流程图设计微指令,并按微指令格式转换成二进制代码,如下表所示。
二进制微代码表
微地址 | S3 S2 S1 S0 M CN WE B1 B0 | A | B | C | UA5…UA0 |
0 0 | 0 0 0 0 0 1 0 1 1 | 0 0 0 | 0 0 0 | 1 0 0 | 0 1 0 0 0 0 |
0 1 | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 0 0 0 1 0 |
0 2 | 0 0 0 0 0 1 0 0 1 | 1 0 0 | 0 0 0 | 0 0 1 | 0 0 1 0 0 0 |
0 3 | 0 0 0 0 0 1 0 0 1 | 1 1 0 | 0 0 0 | 0 0 0 | 0 0 0 1 0 0 |
0 4 | 0 0 0 0 0 1 0 0 1 | 0 1 1 | 0 0 0 | 0 0 0 | 0 0 0 1 0 1 |
0 5 | 0 0 0 0 0 1 0 1 1 | 0 1 0 | 0 0 1 | 0 0 0 | 0 0 0 1 1 0 |
0 6 | 1 0 0 1 0 1 0 1 1 | 0 0 1 | 1 0 1 | 0 0 0 | 0 0 0 0 0 1 |
0 7 | 0 0 0 0 0 1 0 0 1 | 1 1 0 | 0 0 0 | 0 0 0 | 0 0 1 1 0 1 |
0 8 | 0 0 0 0 0 1 0 0 0 | 0 0 1 | 0 0 0 | 0 0 0 | 0 0 0 0 0 1 |
0 9 | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 0 0 0 1 1 |
0 A | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 0 0 1 1 1 |
0 B | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 0 1 1 1 0 |
0 C | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 1 0 1 1 0 |
0 D | 0 0 0 0 0 1 0 0 1 | 0 0 0 | 0 0 1 | 0 0 0 | 0 0 0 0 0 1 |
0 E | 0 0 0 0 0 1 0 0 1 | 1 1 0 | 0 0 0 | 0 0 0 | 0 0 1 1 1 1 |
0 F | 0 0 0 0 0 1 0 0 1 | 0 1 0 | 0 0 0 | 0 0 0 | 0 1 0 1 0 1 |
1 0 | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 1 0 0 1 0 |
1 1 | 0 0 0 0 0 1 0 1 1 | 1 1 0 | 1 1 0 | 1 1 0 | 0 1 0 1 0 0 |
1 2 | 0 0 0 0 0 1 0 0 1 | 0 1 0 | 0 0 0 | 0 0 0 | 0 1 0 1 1 1 |
1 3 | 0 0 0 0 0 1 0 1 1 | 0 0 0 | 0 0 0 | 0 0 0 | 0 0 0 0 0 1 |
1 4 | 0 0 0 0 0 1 0 0 0 | 0 1 0 | 0 0 0 | 0 0 0 | 0 1 1 0 0 0 |
1 5 | 0 0 0 0 0 1 1 1 0 | 0 0 0 | 1 0 1 | 0 0 0 | 0 0 0 0 0 1 |
1 6 | 0 0 0 0 0 1 0 0 1 | 1 0 1 | 0 0 0 | 1 1 0 | 0 0 0 0 0 1 |
1 7 | 0 0 0 0 0 1 1 1 0 | 0 0 0 | 1 0 1 | 0 0 0 | 0 1 0 0 0 0 |
1 8 | 0 0 0 0 0 1 1 0 1 | 0 0 0 | 1 0 1 | 0 0 0 | 0 1 0 0 0 1 |
4)连接实验线路,仔细查线无误后接通电源。
5) 进一步了解微程序控制器的工作原理
① 写微程序
A. “编程开关”置为“写入”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“单步”状态。
C. 用二进制模拟开关UA0~UA5置6位微地址,UA0~UA5的电平由LK0~LK5显示,高电平亮,低电平灭。
D. 用二进制模拟开关MK1~MK24置24位微代码,24位微代码由LMD1~LMD24显示灯显示,高电平亮,低电平灭。
E. 按动“启动运行”开关,启动时序电路,即可将微代码写入到E2PROM 2816的相应地址单元中。
F . 重复C-E步骤,将表3-5的微代码全部写入E2PROM 2816中。
② 读微程序
A. 将“编程开关”设置为“读”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“单步”状态。
C. 用二进制模拟开关UA0~UA5置6位微地址。
D. 按动“启动运行”开关,启动时序电路,读出微代码,观察显示灯LMD1~LMD24的状态,检查读出的微代码是否与写入的相同,如果不同,则将“编程开关”置为“写入”状态。重新执行①即可。
③ 单步运行
A. “编程开关”置于“运行”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“单步”状态。
C. 系统总清,即“总清”开关拨0→1。使微地址寄存器U14~U16清零,从而明确本机的运行入口微地址为000000(二进制)。
D. 按动“启动运行”开关,启动时序电路,则每按动一次,读出一条微指令后停机,此时实验机上的微地址显示灯和微程序显示灯将显示所读出的一条指令。注意:在当前条件下,可将6芯排座“JSE1”和“UJ2”相连,可通过强置端SE1~SE6人为设置微地址,从而改变下一条微指令的地址。设置方法如下:先将微地址开关置“1”,再将UJ1上的排线换插到“JSE1”,然后将某个或几个二进制开关置为“0”,相应的微地址位即被强置为“1”,从而改变下一条微指令的地址。
④ 连续运行
A. 将“编程开关”置为“运行”状态。
B. “运行控制”开关置为“运行”,“运行方式”开关置为“连续”状态。
C. 系统总清,即“总清”开关拨0→1。使微地址寄存器U14~U16清零,从而明确本机的运行入口微地址为000000(二进制)。
D. 按动“启动运行”开关,启动时序电路,则可连续读出微指令。
4、结果分析与实验体会
1)写出外设输入指令、 二进制加法指令、存数指令、 输出到外设指令和无条件转移指令五条指令的微程序。(用十六进制表示)
IN: 05ED82 04C048 041001 041001
ADD: 05ED82 04C048 041001 05ED83 04E004 04B005 05A206 959A01
STA: 05ED82 04C048 041001 05ED87 04E00D 068201
OUT: 05ED82 04C048 041001 05ED8E 04E00F 04A0015 070A01
JMP: 05ED82 04C048 041001 05ED96 04D181
外设输入指令:041001
二进制加法指令:05ED83->04E004->04B005->05A206->959A01
存数指令:05ED83->04E00D->048201
输出到外设指令:05ED83->04E00F->04A0A5->070A01
无条件转移指令五条指令:05ED96->04D181
- 给出读写微程序过程和验证结果
读出的微程序与写入的微程序完全一致。当将编程开关置为“RUN”(运行)状态。使CLR 从1→0→1,此时微地址寄存器清“0”,从而给出取指微指令的入口地址为000000(二进制)。按动START,启动时序电路,每按动一次启动键,读出一条微指令。
外设输入指令:0105ED82,0204C048,08041001
二进制加法指令:0105ED82,0204C048,0905ED83,0304E004,0404BO05,0505A206,06959A01
存数指令:0105ED82,0204C048,0A05ED87,0704E00D,0D068201
输出到外设指令:0105ED82,0204C048,0B05ED8E,0E04E00F,0E04A015,15070A01
无条件转移指令:0105ED82,0204C048,OC04C048,OC05ED96,1604D181