当前位置:文档之家› 实验四 常规型微程序控制器组成实验

实验四 常规型微程序控制器组成实验

实验四常规型微程序控制器组成实验一、实验目的1.掌握时序发生器的组成原理。

2.掌握微程序控制器的组成原理。

二、实验电路1.时序发生器本实验所用的时序电路见图3.4。

电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。

另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。

图3.4 时序信号发生器本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。

产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号W1-W3的控制时钟CLK1。

该芯片的逻辑功能用ABEL语言实现。

其源程序如下:MODULE TIMER1TITLE 'CLOCK GENERATOR T1-T4'CLK = .C.;"INPUTMF, CLR, QD, DP, TJ, DB PIN 1..6;W3 PIN 7;"OUTPUTT1, T2, T3, T4 PIN 15..18 ISTYPE 'REG';CLK1 PIN 14 ISTYPE 'COM';QD1, QD2, QDR PIN ISTYPE 'REG';1ACT PIN ISTYPE 'COM';S = [T1, T2, T3, T4, QD1, QD2, QDR];EQUATIONSQD1 := QD;QD2 := QD1;ACT = QD1 & !QD2;QDR := CLR & QD # CLR & QDR;T1 := CLR & T4 & ACT # CLR & T4 & ! (DP # TJ # DB & W3) & QDR;T2 := CLR & T1;T3 := CLR & T2;T4 := !CLR # T3 # T4 & !ACT & (DP #TJ# DB& W3) # !QDR;CLK1 = T1 # !CLR & MF;S.CLK = MF;END节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。

其源程序如下:MODULE TIMER2 //头部TITLE 'CLOCK GENERATOR W1-W3'DECLARATIONS //说明部CLK = .C.;"INPUTCLK1, CLR, SKIP PIN 1..3;"OUTPUTW1, W2, W3 PIN 16..18 ISTYPE 'REG';W = [W1, W2, W3];EQUATIONS //逻辑描述部W1 := CLR & W3;W2 := CLR & W1 & !SKIP;W3 := !CLR # W2 # W1 & SKIP;W.CLK = CLK1;END TIMER2 //结束部左边GAL的时钟输入MF是晶振的输出,频率为500KHz。

T1-T4的脉宽为2μs。

CLR实际上是控制台的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效。

CLR#=0将系统复位,此时时序停在T4、W3,微程序地址为000000B。

建议每次实验台加电后,先按CLR#复位一次。

实验台上CLR#到时序电路的连接已连好。

对时序发生器TJ输入引脚的连接要慎重,当不需要暂停微程序的运行时,将它接地;如果需要的话,将它与微程序控制器的输出微命令TJ相连。

QD(启动)是单脉冲信号,在23GAL 中用时钟MF 对它进行了同步,产生QD1和QD2。

ACT 表达式为QD1&!QD2,脉宽为2μs 。

QDR 是运行标志,QD 信号使其置1,CLR#将其置0。

DB (单步)、DP (单拍)是来自实验台的二进制开关模拟信号。

当TJ =0、DB =0、DP =0时,一旦按下QD 键,时序信号T1-T4周而复始的发送出去,此时机器处于连续运行状态。

当DP =1、TJ =0、DP =0时,按下QD 键,机器将处于单拍运行状态,此时只发送一组T1、T2、T3、T4时序信号就停机,此时机器时序停在T4。

利用单拍方式,每次只读出一条微指令,因而可以观察微指令代码以及当前的执行结果。

当机器连续运行时,如果TJ =1,也会使机器中断运行,时序停在T4。

DB 、SKIP 、CLK1信号以及W1-W3节拍电位信号都是针对硬连线控制器的。

硬连线控制器执行一条机器指令需要一组W1-W3时序信号。

CLK1是产生W 信号的控制时钟,由左边一片GAL 产生。

DB 信号就是控制每次发送一组W1-W3后停机。

执行某些机器指令不需要一组完整的W 信号,SKIP 信号就是用来跳过本指令剩余的W 节拍信号的。

2. 数据通路微程序控制器是根据数据通路和指令系统来设计的。

这里采用的数据通路是在综合前面各实验的基础上,整合了运算器模块、存储器模块等形成的。

有关数据通路整体的详细说明,请参阅第一章。

3. 微指令格式根据给定的8条机器指令功能和数据通路总体图的控制信号,采用的微指令格式如图3.5所示。

微指令字长31位,其中顺序控制部分9位:判别字段3位,后继微地址6位。

操作控制字段22位,各位进行直接控制。

μA 0μA 1μA 2μA 3μA 4μA 5备用TJL D I RP C +1L D P C #A R +1L D A R #L D D R 1L D D R 2L D R i S W -B U S #R s -B U S #A L U -B U S #R A M -B U S #C E R #C E L #L R W C n #M S0S1S3S2图3.5 微指令格式对应微指令格式,微程序控制器的组成见图3.6。

控制存储器采用4片E 2PROM (HN58C65)组成,HN58C65是8K ×8位的,地址输入端有13位(A12-A0),实验中只用到A5-A0,所以A12-A6接地,实际的使用空间为64字节。

微地址寄存器μAR 共6位,用一片8D 触发器74LS174组成,带有异步清零端。

两级与、或门构成微地址转移逻辑,用于产生下一微指令地址。

在每一个T1的上升沿,新的微指令地址打入微地址寄存器中,控制存储器随即输出该条微指令的控制信号。

微地址转移逻辑生成下一微地址,等到下一个T1上升沿,将其打入微地址寄存器中。

微地址转移逻辑的多个输入信号中,SWC 、SWB 、SWA 是控制台指令的定义开关,它们用来决定控制台指令微程序的分支。

C 是进位信号,IR7-IR4是机器指令的操作码字段,根据它们的值来控制微程序转向某个特定的分支。

三、机器指令与微程序为教学中简单明了,本实验仪器使用了8条机器指令,均为单字长(8位)指令。

指令功能及格式如表3.3所示。

指令的高4位IR7-IR4是操作码,提供给微程序控制器用作地址转移;低4位提供给数据通路。

SWC SWB SWAC IR7IR6IR5IR4图3.6 微程序控制器电路图应当指出,用这8条指令来编写实际程序是远远不够的。

我们的目的是为了教学,通过执行一些最简单的程序来掌握微程序控制器的工作原理。

上述8条指令的微程序流程图如图3.7所示。

每条微指令可按前述的微指令格式转换成二进制代码,然后写入微程序控制器的控制存储器中。

400KT Array图3.7 微程序流程图微指令代码表根据图3.7的微程序流程图计算出微程序代码比较困难。

为了计算出微程序代码,需要1个各微指令使用的信号表,即代码表。

表3.4 微程序代码表微指令KT RRF WRF RRM WRM PR当前微地址00 0C 1E 06 07 0B 1D 0D 0E 0A 02 03 09 04 05 08 0F5下一微地址08 1E 06 07 1E 1D 0D 0E 1D 02 03 02 04 05 04 0F 10 P0 1 . . . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . . . . 1P2 . . . . . . . . . . . . . . . . .备用. . . . . . . . . . . . . . . . .TJ . 1 . . 1 1 . 1 1 . 1 . 1 . 1 . .LDIR . . . 1 . . . 1 . . . . . . . . 1PC+1 . . . . . . . . . . . . . . . . .LDPC# . 1 . . . 1 . . . . . . . . . 1 .AR+1 . . . . . . . . . . . 1 . . 1 . .LDAR# . 1 . . . 1 . . . 1 . . 1 . . . .LDDR1 . . . . . . . . . . . . . . . . .LDDR2 . . . . . . . . . . . . . . . . .LDRi . . . . . . . . 1 . . . . . . . .SW_BUS# . 1 1 . . 1 1 . 1 1 . . 1 1 . 1 .RS_BUS# . . . . 1 . . . . . . . . . . . .ALU_BUS# . . . . . . . . . . . . . . . . .RAM_BUS# . . . . . . . . . . 1 . . . . . .CER# . . . 1 . . . 1 . . . . . . . . 1CEL# . . 1 . . . 1 . . . 1 . . 1 . . .LR/W# . . 0 . . . 0 . . . 1 . . 0 . . .Cn# . . . . . . . . . . . . . . . . .M . . . . . . . . . . . . . . . . .S0 . . . . . . . . . . . . . . . . .S1 . . . . . . . . . . . . . . . . .S2 . . . . . . . . . . . . . . . . .S3 . . . . . . . . . . . . . . . . .注:后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。

相关主题