实验四 常规型微程序控制器组成实验
一、实验目的
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 TIMER1
TITLE 'CLOCK GENERATOR T1-T4' CLK = .C.; \ MF, CLR, QD, DP, TJ, DB PIN 1..6; W3 PIN 7; \ T1, T2, T3, T4 PIN 15..18 ISTYPE 'REG'; CLK1 PIN 14 ISTYPE 'COM'; QD1, QD2, QDR PIN ISTYPE 'REG';
1
ACT PIN ISTYPE 'COM'; S = [T1, T2, T3, T4, QD1, QD2, QDR]; EQUATIONS QD1 := 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.; \ CLK1, CLR, SKIP PIN 1..3; \ W1, 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(启动)是单脉冲信号,在
2
GAL中用时钟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位,各位进行直接控制。
Cn#LRWCEL#CER#RAM-BUS#ALU-BUS#Rs-BUS#SW-BUS#LDRiLDDR2LDDR1LDAR#AR+1LDPC#PC+1LDIR备用判别字段后继微地址313029282726252423222120191817161514131211109876543210图3.5 微指令格式μμμμμμS3S2S1S0MTJP2P1P0A5A4A3A2A1A0
对应微指令格式,微程序控制器的组成见图3.6。
控制存储器采用4片E2PROM(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位提供给数据通路。
3