计算机组成原理实验指导书
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 LDRi LOAD LDR2 自定义 LDR1 LAR LDIR 无操作 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 RAG ALU-G RCG 自定义 RBG PC-G 299-G 无操作 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 P1 AR P3 自定义 P2 LPC P 4 无操作 表5-1 五、实验内容:
编写几条可以连续运行的微代码,熟悉本实验系统的微代码设计方式。表5-2为几条简单的可以连续运行的二进制微代码表:
注意UA5-------UA0的编码规律,观察后续地址。 S3 S2 S1 S0 M CN WE 1A 1B 微地址(二进制) 000000 0 0 0 0 0 0 0 0 0 000001 0 0 0 0 0 0 0 0 0 000010 0 0 0 0 0 0 0 0 0 000011 0 0 0 0 0 0 0 1 0 000100 0 0 0 0 0 0 0 1 0 001000 0 0 0 0 0 0 0 0 0 001001 0 0 0 0 0 0 0 1 1 010000 0 0 0 0 0 0 0 1 1 010101 0 0 0 0 0 1 1 0 1 011000 1 1 1 1 1 1 1 1 0 011001 0 0 0 0 0 0 0 1 0 表5-2 实验五微代码表
以下举例说明微代码的含义:
1、 微地址“000011”:读Y1设备上的数据,并将该数据打入地址寄存器。然后跳转至
微地址“000100”。
2、 微地址“000100”:读Y1设备上的数据,并将该数据打入运算暂存器2,然后跳转
至微地址“001000”。
3、 微地址“011000”:运算暂存器1数据输出至数据总线,将该数据写入Y1设备,然
后跳转至微地址“011001”。
4、 微地址“011001”:读Y1设备上的数据,然后进行P1测试。由于未对指令寄存器操
作,I7—I0均为0,强制置位无效,仍跳转至后续微地址“000000”。 六、实验步骤:
Ⅰ、单片机键盘操作方式实验
F1 000 000 000 101 010 000 101 101 111 111 111 F2 000 000 000 111 111 111 101 101 001 001 111 F3 000 000 000 111 111 000 101 101 111 111 000 UA5...UA0 000001 000010 000011 000100 001000 001001 010000 010101 011000 011001 000000 计算机组成原理实验指导书
在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1.实验连线:
实验连线图如图5-5所示。
连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。
图5—5 实验五键盘实验连线图
2.写微代码:
(1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入05或5,按【确认】键,显示为【ES05】,再按下【确认】键。
(2) 监控显示为【CtL1=_】,表示对微代码进行操作。输入1显示【CtL1_1】,表示写微代码,按【确认】。
(3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,这时输入微代码【000001】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,此过程中可按【取消】键来取消上一次输入,重新输入。按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表5-3第二条微代码地址。
(4) 按照上面的方法输入表5-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。
微地址(二进制) 000000 000001 000010
微代码(十六进制) 000001 000002 000003
计算机组成原理实验指导书
000011 000100 001000 001001 010000 010101 011000 011001 015FC4 012FC8 018E09 005B50 005B55 06F3D8 FF73D9 017E00 表5-3 实验五微代码表
3.读微代码:
(1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。
(2) 按【实验选择】键,显示【ES--_ _ 】输入05或5,按【确认】键,显示【ES05】。按【确认】键。
(3) 监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】 ,此时输入6位二进制微地址,进入读微代码状态。再按【确认】显示【PULSE】,此时按【单步】键,监控显示【U_Addr】,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。对照表5-3表检查微代码是否有错误,如有错误,可按步骤2写微代码重新输入这条微代码。 4.微代码的运行:
(1) 先将开关K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。 (2) 按【实验选择】键,显示【ES--_ _ 】输入05或5,按【确认】键,显示【ES05】。按【确认】键。
(3) 监控指示灯显示【CtL1=_】,输入3,显示【CtL1_3】,表示进入运行微代码状态,拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对程序计数器清零,清零结果是地址指示灯(A7—A0)和微地址显示灯(uA5—uA0)全灭,清零步骤是使其电平高-低-高即CLR指示灯状态为亮-灭-亮,使程序入口地址为000000。 1)、单步运行
在监控指示灯显示【CtL1_3】状态下,确认清零后,按【确认】键,监控指示灯滚动显示【Run CodE】,此时可按【单步】键单步运行微代码,观察微地址显示灯,显示
计算机组成原理实验指导书
“000001”,再按【单步】,显示为“000010”,连续按【单步】,则可单步运行微代码,注意观察微地址显示灯和微代码的对应关系。 2)、全速运行
在控指示灯滚动显示【Run CodE】状态下,按【全速】键,开始自动运行微代码,微地址显示灯显示从“000000”开始,到“000001”、“000010”、“000011”、“000100”、“001000”、“001001”、“010000”、“010101”、“011000”、“011001”再到“000000”,循环显示。 Ⅱ、开关控制操作方式实验
本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。
为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态,所有对应的指示灯亮。连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。
1. 按图5-6接线图接线:
2.实验步骤:
2) 写微代码 (以写表5-3的微代码为例) :
首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 置24位微代码开关MS24---MS1为:“00000000 00000000 00000001”,输入24位二进制微代码,按【单步】,红色微地址灯显示“000 000”,写入微代码。保持K1K2K3K4状态不变,写入表4-1的所有微代码。
3) 读微代码并验证结果:
计算机组成原理实验指导书
将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按【单步】,黄色微地址灯显示“000 000”,24位微代码显示“00000000 00000000 00000001”,即第一条微代码。保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表5-3的微代码比较,验证是否正确。如发现有误,则需重新输入微代码。
4) 运行微代码:
将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,使微地址和地址指示灯全灭。置控制开关“UA5------UA0=“000 000”,程序运行入口地址为000000,按【单步】,运行微代码,观察黄色微地址显示灯,显示 “000001”,再按【单步】,显示为“000010”,连续按【单步】,则可单步运行微代码,注意观察微地址显示灯和微代码的对应关系,微地址显示灯显示从“000000”开始,到“000001”、“000010”、“000011”、“000100”、“001000”、“001001”、“010000”、“010101”、“011000”、“011001”再到“000000”,循环显示。
计算机组成原理实验指导书