(一)
微程序控制器实验
一.实验目的与要求
实验目的:1、掌握时序产生器的原理和具体操作。
2、掌握微程序控制器的功能、组成知识。
3、掌握微程序的编制、写入、观察微程序的运行,学习基本指令的执行流程。
要求:做好实验预习,掌握进位控制运算器的原理。实验之前,应认真准备,写出实验步骤和具体分析内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容。
二.实验方案
1、 连接好实验线路,检查无误后接通电源。
2、 编程:(1)将编程开关(MJ20)置为PROM(编程)状态;
(2)将STATE UNIT中的STEP置为“STEP”状态,STOP置为“RUN”状态;
(3)在UA5-UA0开关上置要写的某个微地址(八进制);
(4)在MK24-MK1开关上置要写的微地址相应的24位微代码,24位开关对应24位显示灯,开关量为“1”灯亮,为“0”灯灭;
(5)启动时序电路(按动启动按钮START),即将微代码写入到E2PROM2816的相应地址对应的单元中;
(6)重复(3)~(5)步骤将每一条微指令写入E2PROM2816。
3、 校验:(1)将编程开关置为READ状态;
(2)将STEP开关置为“STEP”状态,STOP开关置为“RUN”状态;
(3)在开关UA5~UA0上置好要读的某个微地址;
(4)按动START键,启动时序电路,观察显示灯MD24-MD1的状态,检查读出的微代码是否已写入的相同。如果不同在将开关置于PROM编程状态,重新执行编程步骤;
(5)重复(3)(4)步骤将每一条微指令从E2PROM2816中读出。
4、 单步运行:(1)将编程开关置于“RUN”状态;
(2)STEP置为“STEP”状态,STOP置为“RUN”状态;
(3)“AW-BUS”开关置为0,将二进制开关INPUT
DEVICE区域内的D5-D0全为1;
(4)操作CLR开关使信号系统1→0→1;
(5)按动“START”,启动时序电路,则每按动一次启动键,读出一条微指令,当读到某些指令时需通过强制端强制转换后读出指令。同理把所有分支后执行一遍。
三.实验结果和数据处理
根据实验方案,选取JMP指令,并按有关要求完成了相关的练习;从示波器比较观察出TS1、TS2、TS3、TS4各点的波形的相互关系,画出波形图如下
CPU 周期
Φ
TS1
TS2
TS3
TS4
四.试验结果分析
分析ADD的每条微指的指令格式和功能:
ADD:为双字长指令。第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放R0寄存器中。
ADD加法指令由11(PC→AR ,PC+1)、03(RAM→BUS, BUS→AR) 、04(RAM→BUS
,BUS→DR2) 、05(RO→DR1) 、06 ((DR1)+(DR2)→RO)共8条微指令组成。
11微指令功能是RAM赋给BUS,BUS赋给DR2; S3 S2 S1 S0 M CN
的值为“000000”代表进行自加1运算;A字段“110”代表选择LDAR操作,B字段“110”是选择PC-B操作;UA5-UA0中“000011”代表下一指令的地址为“011”。
03微指令功能是RAM赋给BUS,BUS赋给DR2; S3 S2 S1 S0 M CN
的值为“000000”代表进行自加1运算;A字段“110”代表选择LDAR操作,B字段“000”是无选择操作;UA5-UA0中“000100”代表下一指令的地址为“100”。
04微指令功能是RAM赋给BUS,BUS赋给DR2; S3 S2 S1 S0 M CN
的值为“000000”代表进行自加1运算;A字段“011”代表选择LDDR2操作,B字段“000”是无选择操作;UA5-UA0中“000101”代表下一指令的地址为“101”。
05微指令功能是RO赋给DR1; S3 S2 S1 S0 M CN
的值为“000000”代表进行自加1运算;A字段“010”代表选择LDDR1操作,B字段“001”是选择RS-B操作;UA5-UA0中“000110”代表下一指令的地址为“110”。
06微指令功能是DR1+DR2的和赋给R0; S3 S2 S1 S0 M CN
的值为“100101”代表进行加法运算;A字段“001”代表选择LDDRi操作,B字段“101”是选择PC-B操作;UA5-UA0中“00000001”代表下一指令的地址为“01”。
下面是二进制代码表:
微地址
S3 S2 S1 S0 M CN WE A9 A8
A
B
C
UA5-UA0
03
0 0 0 0 0 0 0 0 1
110
000
000
0 0 0 1 0 0
04
0 0 0 0 0 0 0 0 1
011
000
000
0 0 0 1 0 1
05
0 0 0 0 0 0 0 1 1
010
001
000
0 0 0 1 1 0
06
1 0 0 1 0 1 0 1 1
001
101
000
0 0 0 0 0 1
11
0 0 0 0 0 0 0 1 1
110
110
110
0 0 0 0 1 1
五.写出你掌握了的控制信号的作用
A、B、C三个译码字段,通过3:8译码器分别译码出多位控制信号。A字段中,主要是寄存器的打入信号,B字段中主要是寄存器的输出信号,C字段中,主要是测试信号。
C字段中的AR为算术运算是否影响进位及判零标志控制位,其为0有效。LOAD是PC加1信号,P(1)-P(4)是四个测试判别信号,其功能是根据机器指令及相应微代码进行译码,使微程序输入相应的微地址入口,从而实现微程序的顺序、分支、循坏运行。
B字段中的RS-B、RD-B、RI-B分别为原寄存器选通输出信号、目的寄存器选通输出信号及变址寄存器选通输出信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通输出译码。
A字段中LDRi是存入工作寄存器信号的译码器是能控制位,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选择存入译码。
六.结论
这次的实验难度比较大,但是我认真听老师的讲解,并根据预习的信息和通过和同学的相互讨论和交流,还是较快的掌握了相关的操作,掌握了程序的编制和写入,并学习了指令的执行流程。
七.实验总结
本次实验难度较高,而且实验量大,所以首先预习工作要做好,否则很难按时按要求完成实验。实验分两部分进行,前面部分是微程序的编制、写入、观察微程序的运行,学习基本指令的执行流程。在这过程中,难点就是要掌握如何通过强制端设置分支地址,。后半部分就是用联机软件的逻辑示波器观察时序信号。这个相对简单,连接好操作起来也很快。
问题:
1、 本次实验共设计了几条指令?
答:共11条。分别是IN(输入),ADD(二进制加法),STA(存数),OUT(输出),JMP(无条件转移).
2、 S3、S2、S1、S0、M、CN控制信号共同起到什么作用?
答:S3 S2 S1 S0 M CN 控制信号共同起到选择进行何种算术逻辑运算的作用。
3、 写出WE信号的作用。
答:WE信号的作用是写命令。
4、 UA5-UA0是当前微地址还是后继微地址?
答:UA5-UA0是后继微地址。
八思考题
答题框:
(1)A
(2)C
(3)
(4)A
(5)A
(6)B
(7)C
(8)B
(9)A
(10)A
(11)B
(12)C