— 2、打开实验仪电源,按CON单元的nRST按键,将ALU的A、B、FC、FZ、FS、I清零;如果EXEC键上方指示灯不亮,请按一次EXEC键,点亮指示灯,表示实验仪在运行状态。
3、给暂存器A赋初值 (1)拨动开关区单元的K7..K0开关,形成二进制数01011000(或其它值);指示灯亮,表示该位是?1?,灭为?0?。
(2)拨动开关区单元K15(wA)、K14(wB)、K13(rALU)、K12(CN_I)开关,赋wA=0(允许写A)、wB=1(禁止写B)、rALU=1(不允许ALU输出)、CN_I=0,按CON单元的STEP按键一次,产生一个T1的下降沿,将二进制数01011000写入暂存器A中,ALU单元的A_7…A_0 LED上显示A中的值
4、给暂存器B赋初值 (1)拨动开关区单元的K7..K0开关,形成二进制数10101011(或其它值)。 (2)赋wA=1(禁止写A)、wB=0(允许写B)、rALU=1(不允许ALU输出)、CN_I=0,按CON单元的STEP按键一次,产生一个T2的下降沿,将二进制数10101011写入暂存器B中,ALU单元的R_7…R_0 LED上显示B中的值
5、赋wA=1(禁止写A)、wB=1(禁止写B)、rALU(K10)=0,按uSTEP键,进入T3节拍, 节拍 DS169 DS168 T1、T2、T3无效 0 0 (T1=0、T2=0、T3=0) T1 (T1=1、T2=0、0 1 T3=0) T2 (T1=0、T2=1、1 0 T3=0) T3 (T1=0、T2=0、1 1 T3=1) 说明:1-亮;0-灭 当rALU(K13)=0,如果S3S2S1S0的值是0000时,T2、T3节拍时,允许ALU结果输出;S3S2S1S0的值是其它数值,T3节拍时,允许ALU结果输出,显示于扩展区的二位数码管、DS94..DS101的LED上。
6、根据后边的“运算结果表”,改变K20(S0)、K21(S1)、K22(S2)、K23(S3)、K12(CN_I)的值,观察并记录运算器的输出。例如:S0=0,S1=0,S2=0,S3=0,ALU的D7_D0 = 58H;FC、FZ、FS、I不变。
注意:只有按CON单元的STEP按键一次,产生一个T3的下降沿,ALU才将标志位FC、FZ、FS、I写入标志寄存器PSW中,才能在ALU单元的FZ、FC、FS、I指示灯上看到结果。
如果实验仪、PC联机操作,则可通过软件中的数据通路图来观测实验结果,方法是:打开软件,在星研软件的工具条中选择“运算器实验”,打开运算器实验
的数据通路图。
进行上面的手动操作,点击工具条上单节拍或单周期命令图标,数据通路图会反映当前运算器所做的操作。
数据通路图
重复上述操作,并完成下表。然后改变A、B、CN_I的值,验证 FC、FZ、FS、EI的锁存功能。
运算结果表 运算类型 A B S3 S2 S1 S0 0000 0000 0001 0010 0011 0100 0101 0101 0110 CN_I 结果 ALU=(58) FC=( 0)FZ=( 0) FS=( 0) ALU=(AB) FC=(0 )FZ=(0 ) FS=(0 ) ALU=(FB) FC=( 0)FZ=(0 ) FS=(0 ) ALU=( 08 ) FC=(0 )FZ=( 0) FS=(0 ) ALU=( F3 ) FC=(0 )FZ=( 0) FS=( 0) ALU=(A7 ) FC=(0 )FZ=( 0) FS=( 0) ALU=( 0B ) FC=(0 )FZ=( 0) FS=(0 ) ALU=(2C ) FC=(0 )FZ=( 0) FS=( 0) ALU=( 2C ) FC=( 0)58 58 58 58 58 58 58 移位运算 58 58 AB AB AB AB AB AB AB AB AB 0 1 X X X X 0 1 0 逻辑运算 FZ=(0) FS=( 0) 58 58 AB AB 0110(FC=0) 0110(FC=1) 58 58 58 AB AB AB 0111 0111(FC=0) 0111(FC=1) 58 58 58 AB AB AB 1000 1000(FC=0) 1000(FC=1) 58 算术运算 58 58 AB AB AB 1001 1001(FC=0) 1001(FC=1) 58 58 58 其它 58 58 AB AB AB AB AB 1010 1 1011 1100 1101 X X X ALU=( 2C ) FC=(0 )FZ=( 0) FS=( 0) ALU=( 2C ) FC=(0 )FZ=(0) FS=(0 ) ALU=( B0 ) FC=(0 )FZ=( 0) FS=(0 ) ALU=( B0 ) FC=(0 )FZ=( ) FS=( ) ALU=( B0 ) FC=(0 )FZ=( 0) FS=(0 ) ALU=( 03 ) FC=(1 )FZ=(0 ) FS=( 0) ALU=( 04 ) FC=(1 )FZ=(0 ) FS=(0 ) ALU=( 04 ) FC=(1 )FZ=( 0) FS=( 0) ALU=( AD ) FC=(1 )FZ=( 0) FS=(1 ) ALU=(AC ) FC=(1 )FZ=( 0) FS=( 1) ALU=( AC ) FC=( 1)FZ=( 0) FS=( 1) ALU=(59 ) FC=(0 )FZ=(0 ) FS=( 0) ALU=( 58 ) FC=(0 )FZ=(0 ) FS=(0 ) ALU=(57) FC=(0 )FZ=( 0) FS=( 0) FC=( 00) EI=( 00) 1 0 1 0 1 0 1 0 四. 实验体会
熟悉了整个实验系统的基本结构,了解了该实验装置按功能分成几大区,学会何时操作各种开关、按键。最重要的是通过实验掌握了运算器工作原理,熟悉了算术逻辑运算的运算过程以及控制这种运算的方法,了解了进位对算术与 逻辑运算结果的影响,对时序是如何起作用的没太弄清楚,相信随着后续实验的进行一定会搞清楚的。
实验五 微程序控制器实验
一. 实验目的
(1) 掌握微程序控制器的组成原理。
(2) 掌握微程序的编制、写入,观察微程序的运行过程。
二. 实验内容
微程序设计思想是由剑桥大学的M.V.Wilkes教授首先提出的,为每一条机器指令编写一个微程序,每一个微程序包含一条或几条微指令,每一条微指令对应一个或几个控制各部件动作的微操作指令。然后把这些微程序存到一个控制存贮器中,用寻找用户程序机器指令的方法寻找每个微程序中的微指令。由于这些微指令是以二进制代码形式表示的,每位代表一个控制信号,因此,逐条执行每一条微指令,也就相应地完成了一条机器指令的全部操作;由于控制信号是以二进制代码的形式出现的,因此只要修改微指令的代码,就可改变操作内容,便于调试、修改、甚至增删机器指令,有利于计算机仿真。
微程序控制器原理框图
微程序控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由CON单元来提供,分为三拍T1、T2、T3。
微程序控制器的组成见下图,采用四片6116或2816作为微存贮器,微命令寄存器32位,用四片8D触发器(74HC574)组成。
在取指周期的T2下降沿,读取的8位指令数据锁存到指令寄存器(IR)中;T3时刻,根据IR、状态条件(例如:进位标志位、零标志位等),译码生成该机器指令对应的微地址(该机器指令对应uM的首地址),送入微地址寄存器(uPC);如果不在取指周期,uPC的微地址来自于微指令寄存器的低8位(该机器指令对应的后续微地址);在T3的下降沿,将控制存贮器中输出的微指令锁存到微指令寄存器中。
微程序控制器原理图 CON单元有一组按键,与开关区的拨动开关组合,可用来对存贮器MEM、控制存贮器uM读写操作:EXEC按键上方有一指示灯,复位后,指示灯亮,表示实验仪处于运行状态,STEP键、uSTEP键、iSTEP键、PULSE键有效;按一次EXEC键,实验仪切换到编辑状态,ADDR键、+1键、-1键、uM/M键、nRD键、nWR键有效;再按一次EXEC键,实验仪又切换到运行状态。如果在编辑状态时,使用按键,修改过MEM或uM的地址、数据,从编辑状态切换到运行状态后,请按一次nRST复位键,使实验仪回复初始设置(复位PC、uPC、微程序控制器等)。
以向uM的00H单元中写入44332211为例,对控制存贮器进行写入的具体操作步骤如下:
(1)如果EXEC键上方指示灯熄灭,表示实验仪在uM、MEM编辑状态,转第二步;否则,按一次EXEC键,使EXEC键上方指示灯熄灭
(2)如果uM/M键上方指示灯亮,表示处于uM编辑状态,直接转第三步;否则,按uM/M键一次,使uM/M键上方指示灯点亮
(3)IN单元开关给出uM的首地址(00000000),按一次ADDR键,uPC单元的8个发光二级管全熄灭(1:点亮,0:熄灭)
(4)IN单元开关给出该控存单元数据的低八位(00010001),按一次nWR键,低八位数据写入6116/2816的同时,打入uM7-0对应的锁存器中,uM单元的uM0、uM4灯点亮,uM1-3、uM5-7指示灯熄灭
(5)按一次+1键,准备写该控存单元的15-8位;IN单元开关给出数据