七微程序控制器的实现
实验七 微程序控制器的实现实验一、实验目的和要求1、掌握时序信号发生电路组成原理。2、掌握微程序控制器的设计思想和组成原理。3、掌握微程序的编制、写入,观察微程序的运行。二、实验内容1、实验原理实验所用的时序电路原理如图 7-1 所示,可产生 4 个等间隔的时序信号 TS1TS4,其中SP为时钟信号,由实验机上时钟源提供,可产生频率及脉宽 可调的方波信号。学生可根据实验要求自行选择方波信号的频率及脉宽。为 了便于控制程序的运行,时序电路发生器设计了一个启停控制触发器 UN1B, 使 TS1TS4 信号输出可控。图中“运行方式”、“运行控制”、“启动运行” 三个信号分别是来自实验机上三个开关.当“运行控制"开关置为“运行",“运 行方式”开关置为“连续”时,一旦按下“启动运行”开关,运行触发器 UN1B的输出QT 一直处于“1”状态,因此时序信号TS1TS4将周而复始 地发送出去;当“运行控制”开关置为“运行”,“运行方式”开关置为“单 步”时,一旦按下“启动运行”开关,机器便处于单步运行状态,即此时只发 送一个 CPU 周期的时序信号就停机。利用单步方式,每次只运行一条微指 令,停机后可以观察微指令的代码和当前微指令的执行结果。另外,当实验 机连续运行时,如果“运行方式”开关置“单步”位置,也会使实验机停机。 2、 微程序控制电路与微指令格式 微程序控制电路微程序控制器的组成见图72,其中控制存储器采用3片E2PR0M 2816 芯片,具有掉电保护功能,微命令寄存器18位,用两片8D触发器74LS273 (U23、U24)和一片4D触发器74LS175 (U27)组成。微地址寄存器6位, 用三片正沿触发的双D触发器74LS74 (U14U16)组成,它们带有清“0” 端和预置端。在不进行判别测试的情况下, T2 时刻打入微地址寄存器的内 容即为下一条微指令地址。当 T4 时刻进行测试判别时,转移逻辑满足条件 后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改.在本实验电路中设有一个编程开关,它具有三种状态:写入、读出、运行. 当处于“写”状态时,学生可根据微地址和微指令格式将微指令二进制代码 写入到控制存储器2816中.当处于“读”时,可以对写入控制存储器中的二进制代码进行验证,从而可判断写入的二进制代码是否正确。当处于“运行 " 状态时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微 程序。图中微地址寄存器输出端增加了一组三态门(U12),目的是隔离触发 器的输出,增加抗干扰能力,并用来驱动微地址显示灯。 微指令格式微指令长共 24 位,其控制位顺序如下:151413选择000001LDRi010LDDR1011LDDR2100LDIR101LOAD110LDARA字段121110选择000001RSB010RDB011RIB100299B101ALUB110PCBB字段121110选择000001P (1)010p011P(3)100P(4)101AR110LDPCC字段表 7-1 微指令控制位顺序24232221201918171615 14 1312 11 109 8 7654321S3S2S1S0MCNWEBlB0ABCUA5UA4UIA3UA2UA1UA0其中UA5UA0为6位的后续微地址,A、B、C三个译码字段,分别由 三组译码控制电路译码产生各控制信号。C字段中的P (1)P (4)是四个 测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应 的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图7-3所示, 图中1712为指令寄存器的第72位输出,SE5SE1为微控器单元微地址 锁存器的强置端输出。 AR 为算术运算是否影响进位及判零标志控制位,低电 平有效。B字段中的RSB、RDB、RIB分别为源寄存器选通信号、目的寄存 器选通信号及变址寄存器选通信号 ,其功能是根据机器指令来进行三个工作 寄存器RO、R1及R2的选通译码,其原理如图7-4,图中1014为指令寄存 器的第04 位, LDRI为 打入工作寄存器信号的译码器使能控制位。(3) 机器指令的微程序设计 设计五条机器指令:外设输入指令IN;二进制加法指令ADD ADDR;存数指令STA ADDR ;输出到外设指令OUT ADDR;无条件转移指令JMP ADDR。 根据机器指令画出对应的微程序流程图,如图75所示:图 7-5 微程序流程图 根据微程序流程图设计微指令,并按微指令格式转换成二进制代码, 如表72所示。(4) 实验步骤实验接线跳线器J20、J21连上短路片;跳线器J16上SP连H23; UJ1 连 UJ2. 仔细查线无误后接通电源 读写微程序写微程序A. “编程开关”置为“写入”状态。B. “运行控制"开关置为“运行”,“运行方式”开关置为“单步”状态。C. 用二进制模拟开关UA0UA5置6位微地址,UA0UA5的电平由LK0LK5 显示,高电平点亮,低电平熄灭。D. 用二进制模拟开关MK1MK24置24位微代码,24位微代码由 LMD1LMD24显示灯显示,高电平亮,低电平灭。E. 按动“启动运行”开关,启动时序电路,即可将微代码写入到E2PROM 2816 的相应地址单元中。F. 重复C-E步骤,将表7 8的微代码全部写入E2PROM 2816中。表 7-2 二进制微代码表微地址S3 S2 S1 S0 M CN WE B1 B0ABCUA5UA00 00 0 0 0 0 1 0 1 10 0 00 0 01 0 00 1 0 0 0 00 10 0 0 0 0 1 0 1 11 1 01 1 01 1 00 0 0 0 1 00 20 0 0 0 0 1 0 0 11 0 00 0 00 0 10 0 1 0 0 00 30 0 0 0 0 1 0 0 11 1 00 0 00 0 00 0 0 1 0 00 40 0 0 0 0 1 0 0 10 1 10 0 00 0 00 0 0 1 0 10 50 0 0 0 0 1 0 1 10 1 00 0 10 0 00 0 0 1 1 00 610 0 10 10 110 0 11 0 10 0 00 0 0 0 0 10 70 0 0 0 0 1 0 0 11 1 00 0 00 0 00 0 1 1 0 10 80000010000 0 10 0 00 0 00 0 0 0 0 10 90 0 0 0 0 1 0 1 11 1 01 1 01 1 00 0 0 0 1 10 A0 0 0 0 0 1 0 1 11 1 01 1 01 1 00 0 0 1 1 10 B0 0 0 0 0 1 0 1 11 1 01 1 01 1 00 0 1 1 1 00 C0 0 0 0 0 1 0 1 11 1 01 1 01 1 00 1 0 1 1 00 D0 0 0 0 0 1 0 0 10 0 00 0 10 0 00 0 0 0 0 10 E0 0 0 0 0 1 0 0 11 1 00 0 00 0 00 0 1 1 1 10 F0 0 0 0 0 1 0 0 10 1 00 0 00 0 00 1 0 1 0 11 00 0 0 0 0 1 0 1 11 1 01 1 01 1 00 1 0 0 1 01 10 0 0 0 0 1 0 1 11 1 01 1 01 1 00 1 0 1 0 01 20 0 0 0 0 1 0 0 10 1 00 0 00 0 00 1 0 1 1 11 30 0 0 0 0 1 0 1 10 0 00 0 00 0 00 0 0 0 0 11 40 0 0 0 0 1 0 0 00 1 00 0 00 0 00 1 1 0 0 0读微程序A。将“编程开关”设置为“读"状态。B。 “运行控制"开关置为“运行”,“运行方式”开关置为“单步”状态。C。用二进制模拟开关 UA0UA5 置 6 位微地址。D。按动“启动运行”开关,启动时序电路,读出微代码 ,观察显示灯LMD1LMD24的状态,检查读出的微代码是否与写入的相同,如果不同, 则将“编程开关”置为“写入”状态。重新执行写微程序即可。单步运行A. “编程开关”置于“运行"状态。B. “运行控制”开关置为“运行",“运行方式"开关置为“单步"状态。C. 系统总清,即“总清"开关拨0-1。使微地址寄存器U14U16清 零,从而明确本机的运行入口微地址为000000(二进制)。D. 按动“启动运行”开关启动时序电路,则每按动一次,读出一条微指 令后停机,此时实验机上的微地址显示灯和微程序显示灯将显示所读出的一 条指令。注意:在当前条件下,可将6芯排座“JSE1”和“UJ2”相连,可通过 强置端SE1SE6人为设置微地址,从而改变下一条微指令的地址。设置方 法如下:先将微地址开关置“ 1”,再将UJ1上的排线换插到“JSE1”,然后 将某个或几个二进制开关置为“0”,相应的微地址位即被强置为“1",从而改 变下一条微指令的地址。连续运行A. 将“编程开关"置为“运行”状态。B. “运行控制”开关置为“运行”,“运行方式"开关置为“连续”状态。C. 系统总清,即“总清”开关拨0-1。使微地址寄存器U14U16清 零,从而明确本机的运行入口微地址为000000(二进制)。D. 按动“启动运行”开关,启动时序电路,则可连续读出微指令.3、思考题(1)根据图 72的微程序控制器组成图,分析其工作原理。(2)根据实验 中所设计的微指令格式,指出哪几位是操作控制字段和顺 序控制字段?微指令采用的是什么编码方式和后继地址形成方法?(3)根据微程序流程图,写出这 5 条机器指令实现的功能.(4)分析加法指令的微程序。(5)根据微指令格式设计一段减法指令 SUB ADDR 的微程序,减法指 令的功能是R0 ADDR R0 。4、实验电路图®71 5SHWkl_s .LL:區nyi”.丄创-林i.-a:3I££Ssid yi 乂一UM>斗£肓*1巧“Q¥r:.*/rWh'E w hTPUIIKElQiK Da* 申l> cei 欣fitrx車 apCIXlUSTm0:PiEM7TAR1JIini1.3 二半睥s-i-加Ylc 和nTJ-nTIAveEIC1E1图7-2微程序控制器组成图74LS04V410瓦14UN74Lii55SE5SE4SEiI.1.AOIY0Al¥1Y21C1G1Y32Y0英2¥12C2Y22Y3MLDRJ 2 J',图7-3逻辑译码电路J1374LSO4UN3/MLLR1LDKOLLDROri* TMCRSRUN6A74108UN5C741 .SO?S LDROK6 LUK3K45LDRIK5674LS0474L504RIB121074L50SI Ad* 74LSO0XJ4L5O4UN3E>>-UN4C 826T+卿2oP-H)汀P AOl¥0AlIY1 IY21CIY31G2Y0M2Y1xr2Y2t2Y3LN2 74LSI55X5:.7:wiLL.-.nT13.DR2K图7-4逻辑译码电路JULK加KUB .MCSSBR2B