d. 令K0(SW_BUS#)= 0,K7(LDER)= 1。置SW7—SW0为0AAH,按一次QD按钮,将0AAH写
入暂存寄存器ER。
令K7(LDER)= 0,K14(WRD)= 1,K12(WR0)= 1,K13(WR1)= 1,按一次QD按钮,将0AAH(在ER中)写入R0寄存器。
(3) 分别将R0至R3中的数据同时读入到DR2寄存器中和DBUS上,观察其数据是否是存入R0至R3
中的数据。
1.令K0(SW_BUS#)= 1,K2(ALU_BUS)= 0,K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,
K6(LDDR2)= 0,K7(LDER)= 0,K10(RD0)= 0,K11(RD1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
将开关IR/DBUS至于DBUS位置。令K1(RS_BUS#)= 0,使寄存器堆中的数据送DBUS总线。令K8(RS0)= 0,K9(RS1)= 0,R0中的数据通过B端口送DBUS ,数据指示灯应显示0FH。令K8(RS0)= 1,K9(RS1)= 0,R1中的数据通过B端口送DBUS,数据指示灯应显示0F0H。令K8(RS0)= 0,K9(RS1)= 1,R2中的数据通过B端口送DBUS,数据指示灯应显示55H。令K8(RS0)= 1,K9(RS1)= 1,R3中的数据通过B端口送DBUS,数据指示灯应显示0AAH。
2.令K0(SW_BUS#)= 1,K1(RS_BUS#)= 1, K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,
K7(LDER)= 0,K8(RS0)= 0,K9(RS1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
将开关IR/DBUS至于DBUS位置。令K2(ALU_BUS)= 1,使运算器ALU的运算结果送DBUS总线。由于S2接GND,S1接GND,S0接VCC,ALU做直通运算,因此DBUS数据指示灯显示的是DR2寄存器的值。令K10(RD0)= 0,K11(RD1)= 0,K6(LDDR2)= 1,按一次QD按钮,R0中的数据通过A端口送入DR2,DBUS数据指示灯应显示0FH。令K10(RD0)= 1,K11(RD1)= 0,K6(LDDR2)= 1,按一次QD按钮,R1中的数据通过A端口送入DR2,DBUS数据指示灯应显示0F0H。令K6(LDDR2)= 1,K10(RD0)= 0,K11(RD1)= 1,按一次QD按钮,R2中的数据通过A端口送入DR2,DBUS数据指示灯应显示55H。令K10(RD0)= 1,K11(RD1)= 1,K6(LDDR2)= 1,按一次QD按钮,R3中的数据通过A端口送入DR2,DBUS数据指示灯应显示0AAH。
(4)将R0、R1、R2、R3中的数据依次送入存储器0FH、0F0H、55H、0AAH单元。 令K2(ALU_BUS)= 0,K5(LDAR1)= 0,K6(LDDR2)= 0,K7(LDER)= 0,K10(RD0)= 0,K11(RD1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
a. 置AR1/AR2开关到AR1位置。令K0(SW_BUS#)= 0,K1(RS_BUS#)= 1, K3(CEL#)= 1,
K5(LDAR1)= 1,置SW7—SW0为0FH,按一次QD按钮,将AR1置为0FH,地址指示灯应显示0FH。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,禁止数据开关SW7—SW0送DBUS,允许寄存器堆送数据总线DBUS。令K3(CEL#)= 0, K4(LRW)= 0,K5(LDAR1)= 0,K8(RS0)= 0,K9(RS1)= 0,按一次QD按钮,将R0中的数据写入存储器0FH单元。
b. 置AR1/AR2开关到AR1位置。令K0(SW_BUS#)= 0,K1(RS_BUS#)= 1,K3(CEL#)= 1,
K5(LDAR1)= 1,置SW7—SW0为0F0H,按一次QD按钮,将AR1置为0F0H,地址指示灯应显示F0H。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,禁止数据开关SW7—SW0送DBUS,允许寄存器堆送数据总线DBUS。令K3(CEL#)= 0,K4(LRW)= 0,K5(LDAR1)= 0,K8(RS0)= 1,
25
K9(RS1)= 0,按一次QD按钮,将R1中的数据写入存储器F0H单元。
c. 置AR1/AR2开关到AR1位置。令K0(SW_BUS#)= 0,K1(RS_BUS#)= 1,K3(CEL#)= 1,
K5(LDAR1)= 1,置SW7—SW0为55H,按一次QD按钮,将AR1置为55H,地址指示灯应显示55H。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,禁止数据开关SW7—SW0送DBUS,允许寄存器堆送数据总线DBUS。令K3(CEL#)= 0,K4(LRW)= 0,K5(LDAR1)= 0,K8(RS0)= 0,K9(RS1)= 1,按一次QD按钮,将R2中的数据写入存储器55H单元。
d. 置AR1/AR2开关到AR1位置。令K0(SW_BUS#)= 0,K1(RS_BUS#)= 1,K3(CEL#)= 1,
K5(LDAR1)= 1,置SW7—SW0为0AAH,按一次QD按钮,将AR1置为0AAH,地址指示灯应显示0AAH。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,禁止数据开关SW7—SW0送DBUS,允许寄存器堆送数据总线DBUS。令K3(CEL#)= 0,K4(LRW)= 0,K5(LDAR1)= 0,K8(RS0)= 1,K9(RS1)= 1,按一次QD按钮,将R3中的数据写入存储器0AAH单元。
(5)将RAM中0AAH、55H、0F0H、0FH单元的数据依次写入R0、R1、R2、R3。然后将R3、R2、R1、R0中的数据读出到DBUS上,通过指示灯验证读出的数据是否正确。
1. 令K1(RS_BUS#)= 1,K2(ALU_BUS)= 0, K6(LDDR2)= 0, K8(RS0)= 0,K9(RS1)= 0,
K10(RD0)= 0,K11(RD1)= 0。 a.令K0(SW_BUS#)= 0,K5(LDAR1)= 1,K3(CEL#)= 1,K14(WRD)= 0,置SW7—SW0为0AAH,按一次QD按钮,将AR1置为0AAH。
令K14(WRD)= 0,K0(SW_BUS#)= 1,K3(CEL#)= 0,K4(LRW)= 1,K5(LDAR1)= 0,K7(LDER)= 1,按一次QD按钮,将存储器0AAH单元的内容读出,写入到暂存寄存器ER。令K0(SW_BUS#)= 1,K3(CEL#)= 1,K14(WRD)= 1,K5(LDAR1)= 0,K7(LDER)= 0, K12(WR0)= 0,K13(WR1)= 0,按一次QD按钮,将ER中的数据写入R0。 b.令K0(SW_BUS#)= 0,K5(LDAR1)= 1,K3(CEL#)= 1,K14(WRD)= 0,置SW7—SW0为55H,按一次QD按钮,将AR1置为55H。令K14(WRD)= 0,K0(SW_BUS#)= 1,K3(CEL#)= 0,K4(LRW)= 1,K5(LDAR1)= 0,K7(LDER)= 1,按一次QD按钮,将存储器55H单元的内容读出,写入到暂存寄存器ER。令K0(SW_BUS#)= 1,K5(LDAR1)= 0,K7(LDER)= 0,K3(CEL#)= 1,K14(WRD)= 1,K12(WR0)= 1,K13(WR1)= 0,按一次QD按钮,将ER中的数据写入R1。
令K0(SW_BUS#)= 0,K5(LDAR1)= 1,K3(CEL#)= 1,K14(WRD)= 0,置SW7—SW0为0F0H,按一次QD按钮,将AR1置为0F0H。令K14(WRD)= 0,K0(SW_BUS#)= 1,K3(CEL#)= 0,K4(LRW)= 1,K5(LDAR1)= 0,K7(LDER)= 1,按一次QD按钮,将存储器0F0H单元的内容读出,写入到暂存寄存器ER。令K0(SW_BUS#)= 1,K5(LDAR1)= 0,K7(LDER)= 0,K3(CEL#)= 1,K14(WRD)= 1,K12(WR0)= 0,K13(WR1)= 1,按一次QD按钮,将ER中的数据写入R2。
令K0(SW_BUS#)= 0,K5(LDAR1)= 1,K3(CEL#)= 1,K14(WRD)= 0,置SW7—SW0为0FH,按一次QD按钮,将AR1置为0FH。令K14(WRD)= 0,K0(SW_BUS#)= 1,K3(CEL#)= 0,K4(LRW)= 1,K5(LDAR1)= 0,K7(LDER)= 1,按一次QD按钮,将存储器0FH单元的内容读出,写入到暂存寄存器ER。令K0(SW_BUS#)= 1,K5(LDAR1)= 0,K7(LDER)= 0,K3(CEL#)= 1,K14(WRD)= 1,K12(WR0)= 1,K13(WR1)= 1,按一次QD按钮,将ER中的数据写入R3。
2. 令K0(SW_BUS#)= 1, K2(ALU_BUS)= 0,K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,
26
K6(LDDR2)= 0,K7(LDER)= 0, K10(RD0)= 0, K11(RD1)= 0,K12(WR0)= 0,K13(WR1)= 0 ,K14(WRD)= 0。 将开关IR/DBUS至于DBUS位置。令K1(RS_BUS#)= 0,K8(RS0)= 0,K9(RS1)= 0,数据指示灯显示R0的值,应为0AAH。令K8(RS0)= 1,K9(RS1)= 0,数据指示灯显示R1的值,应为55H。令K8(RS0)= 0,K9(RS1)= 1,数据指示灯显示R2的值,应为0F0H。令K8(RS0)= 1,K9(RS1)= 1,数据指示灯显示R3的值,应为0FH。
(6) 进行RF并行输入输出试验
1. 选择RS端口(B端口)对应R0,RD端口(A端口)对应R1,WR端口对应R2,并使WRD=1,观
察并行输入输出的结果。选择RS端口对应R2,验证刚才的写入是否生效。 令K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0。 将开关IR/DBUS至于DBUS位置。令K0(SW_BUS#)= 0,K1(RS_BUS#)= 1,K2(ALU_BUS)= 0,K6(LDDR2)= 0,K7(LDER)= 1,K14(WRD)= 0。将SW7—SW0置为35H,按一次QD按钮,将35H写入暂存寄存器ER。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,K2(ALU_BUS)= 0,K14(WRD)= 1,K6(LDDR2)= 1。再令K8(RS0)= 0,K9(RS1)= 0,RS端口选择R0;K10(RD0)= 1, K11(RD1)= 0,RD端口选择R1;K12(WR0)= 0,K13(WR1)= 1,WR端口选择R2。按一次QD按钮,这时ER中的数据(35H)写入了R2,同时R1中的数据(55H)写入了DR2,R0中的数据送数据总线DBUS(其实,R0中的数据并不受按QD按钮的影响)。数据指示灯应显示R0中的数据0AAH,如果令K1(RS_BUS#)= 1,K2(ALU_BUS)= 1,数据指示灯应显示DR2的内容(即R1的内容),应为55H。再令K1(RS_BUS#)= 0,K2(ALU_BUS)= 0,使数据指示灯仍显示RS端口的内容,同时令K8(RS0)= 0,K9(RS1)= 1,RS端口选择R2,
数据指示灯应显示新的R2的值,即35H。 2. 保持RS端口(B端口)和WR端口同时对应R2,WRD=1,而ER中置入新的数据,观察并行输入输出的结果,RS端口输出的是旧的还是新的数据?
令K2(ALU_BUS)= 0,K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,K6(LDDR2)= 0,K10(RD0)= 0, K11(RD1)= 0。
将开关IR/DBUS至于DBUS位置。令K0(SW_BUS#)= 0,K1(RS_BUS#)= 1, K7(LDER)= 1,K14(WRD)= 0。将SW7—SW0置为53H,按一次QD按钮,将53H写入暂存寄存器ER。令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,K8(RS0)= 0,K9(RS1)= 1,RS端口选择R2,数据指示灯显示R2的值,应为35H。令K14(WRD)= 1,K12(WR0)= 0,K13(WR1)= 1,WR端口选择R2,允许写操作。当按下QD按钮时,新的值53H从ER写入R2,数据指示灯立即变为53H。
27
第五节 微程序控制器组成实验
一、实验目的
(1)掌握时序产生器的组成原理。
(2)掌握微程序控制器的组成原理。 (3)掌握微指令格式的化简和归并。
二、实验电路
1.时序发生器
TIMER1GAL22V101GND2晶振43VCCMF1CLR#2QD3DP4DZ5TJI6P17INTS8INTC9DB1011GND12CLKININININININININININGNDVCCIOIOIOIOIOIOIOIOIOIOIN242322212019181716151413VCCCLK1INTECLK11INTR2INTE34CLR#5SKIP67891011GND12TIMER2GAL22V10CLKININININININININININGNDVCCIOIOIOIOIOIOIOIOIOIOIN1242322212019181716151413VCCINTQW4W3W2W1GNDT4T3T2T1W4图9 时序信号发生器图
TEC—4计算机组成原理实验系统的时序电路如图9所示。电路采用2片GAL22V10(U6、U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬布线控制器的一拍,而一轮W1—W4循环可供硬布线控制器执行一条机器指令。
本次实验不涉及硬布线控制器,因此时序发生器中的相关内容也可根据需要放到硬布线控制器实验中进行。
微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22V10芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现,其源程序如下: MODULE TIMER1
TITLE 'CLOCK GGENERATOR T1,T2,T3,T4' \
\
MF,CLR,QD,DP,DZ,TJ,P1,INTS,INTC,DB PIN 1..10; W4 PIN 13;
\
T1,T2,T3,T4,QD1,QD2,ACT,INTE,QDR PIN 14..22;
28
CLK1 PIN 23;
T1,T2,T3,T4,QD1,QD2,INTE,QDR ISTYPE 'REG'; ACT,CLK1 ISTYPE 'COM'; CLK = .C.;
S =[T1,T2,T3,T4,QD1,QD2,INTE,QDR];
EQUATIONS
QD1 := QD; QD2 := QD1;
QDR := CLR & QD # CLR & QDR; ACT = QD1 & !QD2;
T1 := CLR & T4 & ACT # CLR & T4 & !(DP # TJ # DZ & P1 # DB & W4) & QDR; T2 := CLR & T1; T3 := CLR & T2;
T4 := !CLR # T3 # T4 & !ACT & (DP # TJ # DZ & P1 # DB & W4) # !QDR; INTE := CLR & INTS # CLR & INTE & !INTC; CLK1 = T1 # !CLR & MF; S.CLK = MF; END
MFQDQD1QD2ACTQDR
硬布线控制器只使用时序信号W1-W4,产生W信号的功能集成在GAL22V10芯片TIMER2(U7)中,该芯片的逻辑功能用ABEL语言实现,其源程序如下: MODULE TIMER2
TITLE 'CLOCK GGENERATOR W1 W2 W3 W4' \
\
CLK1,INTR,IE PIN 1..3; CLR,SKIP PIN 5..6;
29
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机组成原理TEC-4实验手册(含实验步骤)完整6个实验 三个程(6)在线全文阅读。
相关推荐: