常规型微程序控制器组成实验Word文档格式.docx
《常规型微程序控制器组成实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《常规型微程序控制器组成实验Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
![常规型微程序控制器组成实验Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/00630f6d-ac55-44ef-997a-89887175b952/00630f6d-ac55-44ef-997a-89887175b9521.gif)
QD#CLR&
QDR;
T1:
T4&
ACT#CLR&
(DP#TJ#DB&
W3)&
T2:
T1;
T3:
T2;
T4:
=!
CLR#T3#T4&
ACT&
(DP#TJ#DB&
W3)#!
QDR;
CLK1=T1#!
CLR&
MF;
S.CLK=MF;
END
节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。
MODULETIMER2//头部
CLOCKGENERATORW1-W3'
DECLARATIONS//说明部
CLK1,CLR,SKIPPIN1..3;
W1,W2,W3PIN16..18ISTYPE'
W=[W1,W2,W3];
EQUATIONS//逻辑描述部
W1:
W3;
W2:
W1&
SKIP;
W3:
CLR#W2#W1&
SKIP;
W.CLK=CLK1;
ENDTIMER2//结束部
左边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位,各位进行直接控制。
S3S2S1S0M
TJ
P2P1P0
判别字段
后继微地址
313029282726252423222120191817161514131211109876543210
图3.5微指令格式
对应微指令格式,微程序控制器的组成见图3.6。
控制存储器采用4片EPROM(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位提供给数据通路。
C7C6C5C4C3C2C1C0C7C6C5C4C3C2C1C0C7C6C5C4C3C2C1C0C7C6C5C4C3C2C1C0
CM3
A12…A6A5A4A3A2A1A0
CM2
A12…A6A5A4A3A2A1A0
D5D4D3D2D1D0
CM1
CLR#
T1
CM0
CIR7IR6
SWCIR5SWBIR4SWA
图3.6微程序控制器电路图
表3.3
指令功能与格式
名称
助记符
功能
指令格式
IR7IR6IR5IR4
IR3IR2
IR1IR0
加法
ADDRd,Rs
Rd+Rs→Rd
0000
Rs1Rs0
Rd1Rd0
减法
SUBRd,Rs
Rd-Rs→Rd
0001
逻辑与
ANDRd,Rs
Rd&
Rs→Rd
0010
存数
STARd,[Rs]
Rd→[Rs]
0011
取数
LDARd,[Rs]
[Rs]→Rd
0100
条件转
移
JCR3
若C=1则
R3→PC
0101
11
×
×
停机
STP
暂停执行
0110
输出
OUTRs
Rs→DBUS
0111
应当指出,用这8条指令来编写实际程序是远远不够的。
我们的目的是为了教学,通过执行一些最简单的程序来掌握微程序控制器的工作原理。
上述8条指令的微程序流程图如图3.7所示。
每条微指令可按前述的微指令格式转换成二进制代码,然后写入微程序控制器的控制存储器中。
KT
00
08
P(0)
RRF(100)WRF(011)RRM(010)WRM(001)PR(000)
SWDBUS
DBUSAR
DBUSPC
0C0B
OA
09
1E
1D
0204
0F
6
7
0D
0E
03
02
DBUSRi
10
P
(1)
ADD(0000)SUB(0001)AND(0010)STA(0011)LDA(0100)JC(0101)STP(0110)
OUT(0111)
1011
12
13
14
15
16
17
18
ADD
ALUDBUS
DBUSRd
PC+1
19
SUB
1A
AND
1B
DR1ALU
DBUSRAM
1C
RAMDBUS
C=0
P
(2)
C=1
1F
图3.7微程序流程图
微指令代码表
根据图3.7的微程序流程图计算出微程序代码比较困难。
为了计算出微程序代码,需要1个各微指令使用的信号表,即代码表。
表3.4
微指令当前微地址下一微地址
微程序代码表
KTRRFWRFRRMWRMPR000C1E06070B1D0D0E0A0203090405080F081E06071E1D0D0E1D0203020405040F10
备用
P01................
P1................1
P2.................
.................
TJ.1..11.11.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#.11..11.11..11.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”表示有效,这些信号在控制器中经过反相后送往数据通路。
微程序代码表(续)
ADDSUBANDSTALDAJCSTPOUT10181119121A131B141C151F1617180F190F1A0F1B0F1C0F0F0F0F0F
P0..............
P1..............
P2..........1...
..............
TJ............11
LDIR..............
PC+1.1.1.1.1.11.11
LDPC#...........1..
AR+1..............
LDAR#.....1.1.....
LDDR11.1.1.1.......
LDDR21.1.1.........
LDRi.1.1.1...1....
SW_BUS#..............
RS_BUS#......1.1..1.1
ALU_BUS#.1.1.1.1......
RAM_BUS#.........1....
CER#..............
CEL#.......1.1....
LR/W#......0.1....
Cn#...1..........
M.0.0.1.0......
S0.1.0.1.0......
S1.0.1.1.0......
S2.0.1.0.0......
S3.1.0.1.0......
为了向RAM和寄存器堆中装入程序和数据、检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:
在按复位按钮CLR#后,TEC-5复位,根据SWC、SWB、SWA状态来选择工作方式。
在控制台工作方式,必须使DP=0,DB=0。
启动程序(PR):
按下复位按钮CLR#后,微地址寄存器清零。
这时,置
SWC=0、SWB=0、SWA=0,用数据开关SW7-SW0设置RAM中的程序首地址,按QD按钮后,启动程序执行。
写存储器(WRM):
按下复位按钮CLR#,置SWC=0、SWB=0、SWA=1。
①在SW7-SW0中置好存储器地址,按QD按钮将此地址打入AR。
②在SW7-SW0置好数据,按QD,将数据写入AR指定的存储器单元,这时AR加1。
③返回②。
依次进行下去,直
到按复位键CLR#为止。
这样就实现了对RAM的连续手动写入。
这个控制台操作的主要作用是向RAM中写入自己编写的程序和数据。
读存储器(RRM):
按下复位按钮CLR#,置SWC=0、SWB=1、SWA=0。
①在SW7-SW0中置好存储器地址,按QD按钮将此地址打入AR,RAM此地址单元的内容读至DBUS显示。
②按QD按钮,这时AR加1,RAM新地址单元的内容读至DBUS显示。
③返回②。
依次进行下去,直到按复位键CLR#为止。
这样就实现了对RAM的连续读出显示。
这个控制台操作的主要作用是检查写入RAM的程序和数据是否正确。
在程序执行后检查程序执行的结果(在存储器中的部分)是否正确。
寄存器写操作(WRF):
按下复位按钮CLR#,置SWC=0、SWB=1、SWA=1。
①首先在SW7—SW0置好存储器地址,按QD按钮,则将此地址打入AR寄存器和PC寄存器。
②在SW1、SW0置好寄存器选择信号WR1、WR0,按QD按钮,通过双端口存储器的右端口将WR1、WR0(即SW1、SW0)送到指令寄存器IR的低2位。
③在SW7-SW0中置好要写入寄存器的数据;
按QD按钮,将数据写入由WR1、WR0指定的寄存器。
④返回②继续执行,直到按复位按钮CLR#。
这个控制台操作主要在程序运行前,向相关的通用寄存器中置入初始数据。
寄存器读操作(RRF):
按下复位按钮CLR#,置SWC=1、SWB=0、SWA=0。
②在SW3、SW2置好寄存器选择信号RS1、RS0,按QD按钮,通过双端口存储器的右端口将RS1、RS0(即SW3、SW2)送到指令寄存器IR的第3、2位。
RS1、RS0选中的寄存器的数据读出到DBUS上显示出来。
③返回②继续下去,直到按复位键CLR#为止。
这个控制台操作的主要作用是在程序执行前检查写入寄存器堆中的数据是否正确,在程序执行后检查程序执行的结果(在寄存器堆中的部分)是否正确。
四、实验设备
1.TEC-5计算机组成原理实验系统1台
3.
4.
逻辑测试笔一支(在TEC-5实验台上)双踪示波器一台(公用)
万用表一只(公用)
五、实验任务
1.按实验要求,连接实验台的电平开关K0-K15、时钟信号源和微程序控制器。
连接完成后应仔细检查一遍,然后才可以加上电源。
注意:
本次实验只做微程序控制器本身的实验,故微程序控制器输出的微命令信号与执行部件(数据通路)的连线不连接。
2.观察时序信号。
用双踪示波器观测时序发生器的输入、输出信号:
MF、T1-T4、W1-W3。
比较相位关系,画出其波形图,并标注出测量所得的脉冲宽度。
观察时须将DB、DP开关置为0状态,然后按QD按钮。
熟悉启停控制按钮的功能,并熟练使用这些控制按钮或开关。
3.熟悉微指令格式的定义,按此定义将图3.7所示的全部微程序变换成二进制代码,并列表登记。
此表请在预习时完成。
4.控制台操作的功能由SWC、SWB、SWA三个二进制开关的状态配合P0判断来决定。
用单拍(DP)方式执行控制台操作微程序,观察判别字段和微地址指示灯的显示,跟踪微指令的执行情况,并与上表数据对照。
5.
深刻理解0FH微指令的功能和P1测试的状态条件(IR7-IR4),用二进制开关设置IR7-IR4的不同状态,观察ADD至OUT八条机器指令对应微程序的微命令信号,特别是微地址转移的实现,并与上面表格进行对照。
六、实验要求
做好实验预习,掌握微程序控制器和时序发生器的工作原理。
根据实验任务所提的要求,在预习时完成表格填写、数据和理论分析值。
写出实验报告,内容是:
(1)实验目的。
(2)实验任务2的时序波形图和测量值。
(3)实验任务3的表格。
七、实验步骤和实验结果
(1)接线
控制器
C
IR4
IR5
IR6
IR7
模拟开关
K0
K1
K2
K3
K4
时序电路
SKIP
固定电平
地
接线表中的TJ是时序电路中的TJ,不是控制器中的TJ(该TJ由控制器产生,不能接输入信号),千万不要接错。
(2)观察时序信号的波形
置DP=0,DB=0。
先按CLR#按钮复位,再QD按钮。
则时序部分开始不停止地运行,直到按CLR#按钮为止。
用双踪示波器观察MF、T1、T2、T3、T4、W1、W2、W3信号。
观察的方法是同时观察两路信号,以便于比较相位。
可按下述顺序进行观察:
MF和T1,T1和T2,T2和T3,T3和T4,T1和W1,W1和W2,W2和W3。
根据观察的结果,可绘出波形图。
MF
T2
T3
T4
W1
W2
W3
图3.8基本时序图
MF的周期为2000毫秒,占空比为50%。
(3)控存代码表
表3.5
控存代码表
微地址
48
01
40
04
05
44
06
80
07
20
84
0A
0B
A4
0C