1、3.2 微程序控制器实验3.2.1 实验目的(1) 掌握微程序控制器的组成原理。(2) 掌握微程序的编制、写入,观察微程序的运行过程。3.2.2 实验设备PC 机一台, TD-CMA 实验系统一套。3.2.3 实验原理微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控
2、制存储器,微程序控制器原理框图如图 3-2-1 所示。 OP 地 址 转 移 逻 辑P字 段指 令 寄 存 器 IR .状 态 条 件微 地 址 寄 存 器控 制 字 段 .控 制 存 储 器地 址 译 码 微 命 令 信 号图 3-2-1 微程序控制器组成原理框图控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍 TS1、TS2、TS3 、TS4 ,时序单元的介绍见附录 2。微程序控制器的组成见图 3-2-2,其中控制存储器采用 3 片 2816 的 E2PROM,具有掉电保护
3、功能,微命令寄存器 18 位,用两片 8D 触发器(273 )和一片 4D(175)触发器组成。微地址寄存器 6 位,用三片正沿触发的双 D 触发器( 74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当 T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。G74LS24574LS273G74LS24574LS24574LS27374LS175MA5MA4MA3MA2MA1MA0SE12SE374LS245ALU_B4GRD_BSE5SSP_B0I138 译码PCP3LDC
4、STIRDWS3IOM2S01LDARM23LDALDRiBOSPCLRKCLRKCLRKCRA-DECGNDCLB-DECC-DECM6M8M9M14 MA5.MA0GSA5 . SA074LS245G. .SD07 . SD0SD17 . SD10SD27 . SD20. . . . . . . .M23-M0微代码显示RCMA5.MA0. . .138译码138 译码GND微地址显示灯MA5.MA0I1 Y7Y1Y1Y6Y7Y1. .CLRON单元P2.1P2.0单片机P2.D7 . D02816A5A0CSOEWED7 . D02816A5A0CSOEWED7 . D02816A5A0
5、CSOEWE 编程逻辑T2INTA图 3-2-2 微程序控制器原理图3.2.4 实验步骤1. 按图 3-2-10 所示连接实验线路,仔细查线无误后接通电源。如果有滴报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。M C单元A L U _ BA L U _ BL D AL D BL D AL D BA L U /*/; / /; / 微控器实验指令文件 /; / /; / By TangDu CO.,LTD /; / /; /*/; /* Start Of MicroController Data */$M 00 000001 ; NOP$M 01 007070 ; CON(IN
6、S)-IR, P$M 04 002405 ; R0-B$M 05 04B201 ; A加 B-R0$M 30 001404 ; R0-A$M 32 183001 ; IN-R0$M 33 280401 ; R0-OUT$M 35 000035 ; NOP; /* End Of MicroController Data */3. 运行微程序运行时也分两种情况:本机运行和联机运行。1) 本机运行 将时序与操作台单元的开关 KK1、KK3 置为运行 档,按动 CON 单元的 CLR按钮,将微地址寄存器(MAR)清零,同时也将指令寄存器(IR) 、ALU 单元的暂存器 A和暂存器 B 清零。 将时序与
7、操作台单元的开关 KK2 置为单拍档,然后按动 ST 按钮,体会系统在 T1、 T2、T3、T4 节拍中各做的工作。T2 节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;T3、T4 节拍根据 T2 节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。 按动 CON 单元的 CLR 按钮,清微地址寄存器(MAR )等,并将时序与单元的开关 KK2 置为单步档。 置 IN 单元数据为 00100011,按动 ST 按钮,当
8、 MC 单元后续微地址显示为 000001时,在 CON 单元的 SD27SD20 模拟给出 IN 指令 00100000 并继续单步执行,当 MC 单元后续微地址显示为 000001 时,说明当前指令已执行完;在 CON 单元的 SD27SD20 给出 ADD 指令 00000000,该指令将会在下个 T3 被打入指令寄存器(IR) ,它将 R0 中的数据和其自身相加后送 R0;接下来在 CON 单元的 SD27SD20 给出 OUT 指令 00110000 并继续单步执行,在 MC 单元后续微地址显示为 000001 时,观查 OUT 单元的显示值是否为01000110。2) 联机运行联机
9、运行时,进入软件界面,在菜单上选择【实验】【微控器实验】 ,打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图 3-2-8 所示。将时序与操作台单元的开关 KK1、KK3 置为运行档,按动 CON 单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的 MAR)为 000001 时,置 CON单元 SD27SD20,产生相应的机器指令,该指令将会在下个 T3 被打入指令寄存器(IR) ,在后面的节拍中将执行这条机器指令。仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确。