微程序控制器的组成与微程序设计实验报告
- 格式:doc
- 大小:739.00 KB
- 文档页数:5
信息学院
实 验 报 告
学号: 姓名: 班级:
课程名称:计算机组成原理 实验名称:微程序控制器的组成与微程序设计实验
实验性质: ①综合性实验 ②设计性实验 ③验证性实验
实验时间: 实验地点:
一、实验目的
1、掌握微程序控制器的组成原理;
2、掌握微程序的编制、写入,观察微程序的运行;
3、为整机实验打好基础。
二、实验内容
编制微程序并观察其运行过程。
三、实验仪器
1、ZY15Comp12BB计算机组成原理教学实验系统 一台
2、排线 若干
四、实验原理
实验所用的时序电路原理可以参考时序实验。由于时序电路的内部线路已经连好(时序电路的CLR已接到实验板中下方的CLR清零开关上),所以只需将时序电路与方波信号源连接即可。
1、微程序控制电路
微程序控制器的组成见图1-13。其中控制存储器采用3片2816 E2PR0M,具有掉电保护功能。微命令寄存器18位,用两片8D触发器(74LS273)和一片4D(74LS175)触发器组成。微地址寄存器6位,用三片上升沿触发的双D触发器(74LS74)组成,它们带有清“0”端和置“1”端。在不进行判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。当T4时刻进行判别测试时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器设置为“1”状态,完成地址修改。
在该实验电路中,在CONTROL UNIT有一个编程开关SP06,它具有三种状态:WRITE(编程)、READ(校验)、RUN(运行)。当处于“编程状态”时,实验者可根据微地址和微指令格式将微指令二进制代码写入到控制存储器2816中。当处于“校验状态”时,可以对写入控制存储器中的二进制代码进行验证,从而可以判断写入的二进制代码是否正确。当处于“运行状态”时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图中微地址寄存器输出端增加了一组三态门74LS245,目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。
2、微指令格式
微指令字长24位,其控制位顺序如下:
表1-4 微指令结构图
微程序 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 1 LDRI 0 0 1 RS_G 0 0 1 P1
0 1 0 LDDR1 0 1 0 RD_G 0 1 0 P2
0 1 1 LDDR2 0 1 1 RI_G 0 1 1 P3
1 0 0 LDIR 1 0 0 299_G 1 0 0 P4
1 0 1 LOAD 1 0 1 ALU_G 1 0 1 AR
1 1 0 LDAR 1 1 0 PC_G 1 1 0 LDPC
M17 M16 控制信号
0 0 Y0
0 1 Y1
1 0 Y2
1 1 Y3
五、实验步骤及结果
1、图1-15为几条机器指令对应的参考微程序流程图,将全部微程序按微指令格式变成二进制代码,可得到表1-5的二进制代码表。
表1-5 微程序时序控制实验二进制代码表
微地址 S3 S2 S1 S0 M CN RD M17 M16 A B P uA5 uA4 uA3 uA2 uA1uA0
0 0 0 0 0 0 0 0 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 0 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 0 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 0 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 0 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 0 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 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1
1 2 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1
1 3 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0
1 4 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0
1 5 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
1 6 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1
1 7 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1
2 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0
2 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0
2 2 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1
2 3 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2 4 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0
2 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
2 6 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 2 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
3 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1
其中uA5一uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。P字段中的Pl一P4是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。
74LS27374LS27374LS24574LS2457474LS24574LS37474LS17574LS13874LS13874LS13828C1628C1628C16123456GGGT1MK1MK8MK9MK16MK17MK24LDRILDDR1LDDR2LDIRLOADLDARM24M16M17M18M19M20M21M22M23(A)(B)(P)74LS74WECECEWECEWEOEOEOELM24LM16LM17LM9LM8LM1control and mcs51CLRT2CLRCLRCLRCLRCLKCLKCLKMS5MS0MA0MA5CLKOEmicro addressm_datam_datam_data(1)1238MD24MD17MD8MD1MD16MD9RS_GRD_GRI_G299_GALU_GPC_GINTAP(1)P(2)P(3)P(4)ARLDPC图1-13 微控制器实验原理图 2、按图1-14连接实验线路,仔细检查无误后接通电源。(图中箭头表示需要接线的地方,接控制信号时要注意各信号一一对应,可用彩排线的颜色来进行区分)。
MICROMS5MS4MS3MS2MS1MS0UA5UA4UA3UA2UA1UA0SWITCHSIGNALCKCLOCKT1T2TS2TS1
图1-14 微控制器时序控制实验接线图 3、观察微程序控制器的工作原理:
(1)编程
A、将CONTROL UNIT的编程开关SP06设置为WRITE(编程)状态。
B、将实验板上“SIGNAL UNIT”中的“SP03”设置为“STEP”,“SP04”设置为“RUN”状态。SWITCH UNIT的开关CLR置为高电平。
C、用SWITCH UNIT的二进制模拟开关设置微地址UA5—UA0。
D、在MICRO CONTROL单元的开关SM24—SM01上设置微代码,24位开关对应24位显示灯,开关量为“1”时灯亮,开关量为“0”时灯灭。
E、启动时序电路(按动CONTROL UNIT 的“START” 触动开关),即将微代码写入到E2PR0M 28C16的相应地址对应的单元中。
F、重复C—E步骤,将表1-5的微代码写入28C16。
(2)校验
A、将CONTROL UNIT的编程开关SP06设置为READ(校验)状态。
B、将实验板“SIGNAL UNIT”中的“SP03”开关设置为“STEP”状态,“SP04”开关设置为“RUN”状态。
C、用SWITCH UNIT的二进制开关设置要检验的微地址UA5—UA0。
D、按动CONTROL UNIT的“START” 触动开关,启动时序电路,读出微代码,观察MICRO CONTROL单元的显示灯LM24-LM01的状态(灯亮为“1”,灭为“0”),检查读出的微代码是否与写入的相同。如果不同,则将开关置于“WRITE”编程状态,重新执行(1)即可。
PC→ARPC+1运行01P4PC→ARPC+1PC→ARPC+1SW→BUSBUS→DR1DR1→RAMRAM→BUSBUS→DR1DR1→LED010021243020222723WRITE(01)READ(00)RUN(11)20(SWBSWA)P1RAM→BUSBUS→IR0210PC→ARPC+1PC→ARPC+1DR1→LEDPC→ARPC+1R0→BUSBUS→RAMRAM→BUSBUS→ARPC→ARPC+1SW→R0RAM→BUSBUS→PCRAM→BUSBUS→DR1RAM→BUSBUS→ARDR1+DR2→R0R0→DR1RAM→BUSBUS→DR2RAM→BUSBUS→ARINADDSTAOUTJMP0112071525171613142606050403101101010101