实验四常规型微程序控制器组成实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四常规型微程序控制器组成实验
一、实验目的
掌握时序发生器的组成原理。
掌握微程序控制器的组成原理。
二、实验电路
时序发生器
本实验所用的时序电路见图。电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。
图时序信号发生器
本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。
产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号
W1-W3的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现。其源程序如下:MODULE TIMER1
TITLE 'CLOCK GENERATOR T1-T4'
CLK = .C.;
"INPUT
MF, CLR, QD, DP, TJ, DB PIN 1..6;
W3 PIN 7;
"OUTPUT
T1, T2, T3, T4 PIN 15..18 ISTYPE 'REG';
CLK1 PIN 14 ISTYPE 'COM';
QD1, QD2, QDR PIN ISTYPE 'REG';
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;
= MF;
END
节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。其源程序如下:
MODULE TIMER2 .;
"INPUT
CLK1, CLR, SKIP PIN 1..3;
"OUTPUT
W1, W2, W3 PIN 16..18 ISTYPE 'REG';
W = [W1, W2, W3];
EQUATIONS
μA 0
μA 1μA 2μA 3μA 4μA 5P0
P1P2备用
TJ
L D I R
P 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 微指令格式
C IR7IR6IR5IR4SWC SWB SWA
图3.6 微程序控制器电路图
00
KT Array
图3.7 微程序流程图
. . . . . . . . . . . . . . .
P1 . . . . . . . . . . . . . . . . 1
P2 . . . . . . . . . . . . . . . . .
备用. . . . . . . . . . . . . . . . . TJ . 1 . . 1 1 . 1 1 . 1 . 1 . 1 . . LDIR . . . 1 . . . 1 . . . . . . . . 1
PC+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 . . . . . . . . 1
CEL# . . 1 . . . 1 . . . 1 . . 1 . . .
LR/W# . . 0 . . . 0 . . . 1 . . 0 . . .
Cn# . . . . . . . . . . . . . . . . .
M . . . . . . . . . . . . . . . . .
S0 . . . . . . . . . . . . . . . . .
S1 . . . . . . . . . . . . . . . . .
S2 . . . . . . . . . . . . . . . . .
S3 . . . . . . . . . . . . . . . . .
注:后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。
表微程序代码表(续)
微指令ADD SUB AND STA LDA JC STP OUT
当前微地址10 18 11 19 12 1A 13 1B 14 1C 15 1F 16 17
下一微地址18 0F 19 0F 1A 0F 1B 0F 1C 0F 0F 0F 0F 0F
P0 . . . . . . . . . . . . . .
P1 . . . . . . . . . . . . . .
P2 . . . . . . . . . . 1 . . .
备用. . . . . . . . . . . . . .
TJ . . . . . . . . . . . . 1 1
LDIR . . . . . . . . . . . . . .
PC+1 . 1 . 1 . 1 . 1 . 1 1 . 1 1
LDPC# . . . . . . . . . . . 1 . .
AR+1 . . . . . . . . . . . . . .
LDAR# . . . . . 1 . 1 . . . . .