控制器设计与仿真 实验计算机组成,计算机组成原理——微程序控制器实验

(一)

微程序控制器实验

一.实验目的与要求

实验目的:1、掌握时序产生器的原理和具体操作。

2、掌握微程序控制器的功能、组成知识。

3、掌握微程序的编制、写入、观察微程序的运行,学习基本指令的执行流程。

要求:做好实验预习,掌握进位控制运算器的原理。实验之前,应认真准备,写出实验步骤和具体分析内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容。

二.实验方案

1、 连接好实验线路,检查无误后接通电源。

2、 编程:(1)将编程开关(MJ20)置为PROM(编程)状态;

(2)将STATE UNIT中的STEP置为“STEP”状态,STOP置为“RUN”状态;

(3)在UA5-UA0开关上置要写的某个微地址(八进制);

(4)在MK24-MK1开关上置要写的微地址相应的24位微代码,24位开关对应24位显示灯,开关量为“1”灯亮,为“0”灯灭;

(5)启动时序电路(按动启动按钮START),即将微代码写入到E2PROM2816的相应地址对应的单元中;

(6)重复(3)~(5)步骤将每一条微指令写入E2PROM2816。

3、 校验:(1)将编程开关置为READ状态;

(2)将STEP开关置为“STEP”状态,STOP开关置为“RUN”状态;

(3)在开关UA5~UA0上置好要读的某个微地址;

(4)按动START键,启动时序电路,观察显示灯MD24-MD1的状态,检查读出的微代码是否已写入的相同。如果不同在将开关置于PROM编程状态,重新执行编程步骤;

(5)重复(3)(4)步骤将每一条微指令从E2PROM2816中读出。

4、 单步运行:(1)将编程开关置于“RUN”状态;

(2)STEP置为“STEP”状态,STOP置为“RUN”状态;

(3)“AW-BUS”开关置为0,将二进制开关INPUT

DEVICE区域内的D5-D0全为1;

(4)操作CLR开关使信号系统1→0→1;

(5)按动“START”,启动时序电路,则每按动一次启动键,读出一条微指令,当读到某些指令时需通过强制端强制转换后读出指令。同理把所有分支后执行一遍。

三.实验结果和数据处理

根据实验方案,选取JMP指令,并按有关要求完成了相关的练习;从示波器比较观察出TS1、TS2、TS3、TS4各点的波形的相互关系,画出波形图如下

CPU 周期

Φ

TS1

TS2

TS3

TS4

四.试验结果分析

分析ADD的每条微指的指令格式和功能:

ADD:为双字长指令。第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放R0寄存器中。

ADD加法指令由11(PC→AR ,PC+1)、03(RAM→BUS, BUS→AR) 、04(RAM→BUS

,BUS→DR2) 、05(RO→DR1) 、06 ((DR1)+(DR2)→RO)共8条微指令组成。

11微指令功能是RAM赋给BUS,BUS赋给DR2; S3 S2 S1 S0 M CN

的值为“000000”代表进行自加1运算;A字段“110”代表选择LDAR操作,B字段“110”是选择PC-B操作;UA5-UA0中“000011”代表下一指令的地址为“011”。

03微指令功能是RAM赋给BUS,BUS赋给DR2; S3 S2 S1 S0 M CN

的值为“000000”代表进行自加1运算;A字段“110”代表选择LDAR操作,B字段“000”是无选择操作;UA5-UA0中“000100”代表下一指令的地址为“100”。

04微指令功能是RAM赋给BUS,BUS赋给DR2; S3 S2 S1 S0 M CN

的值为“000000”代表进行自加1运算;A字段“011”代表选择LDDR2操作,B字段“000”是无选择操作;UA5-UA0中“000101”代表下一指令的地址为“101”。

05微指令功能是RO赋给DR1; S3 S2 S1 S0 M CN

的值为“000000”代表进行自加1运算;A字段“010”代表选择LDDR1操作,B字段“001”是选择RS-B操作;UA5-UA0中“000110”代表下一指令的地址为“110”。

06微指令功能是DR1+DR2的和赋给R0; S3 S2 S1 S0 M CN

的值为“100101”代表进行加法运算;A字段“001”代表选择LDDRi操作,B字段“101”是选择PC-B操作;UA5-UA0中“00000001”代表下一指令的地址为“01”。

下面是二进制代码表:

微地址

S3 S2 S1 S0 M CN WE A9 A8

A

B

C

UA5-UA0

03

0 0 0 0 0 0 0 0 1

110

000

000

0 0 0 1 0 0

04

0 0 0 0 0 0 0 0 1

011

000

000

0 0 0 1 0 1

05

0 0 0 0 0 0 0 1 1

010

001

000

0 0 0 1 1 0

06

1 0 0 1 0 1 0 1 1

001

101

000

0 0 0 0 0 1

11

0 0 0 0 0 0 0 1 1

110

110

110

0 0 0 0 1 1

五.写出你掌握了的控制信号的作用

A、B、C三个译码字段,通过3:8译码器分别译码出多位控制信号。A字段中,主要是寄存器的打入信号,B字段中主要是寄存器的输出信号,C字段中,主要是测试信号。

C字段中的AR为算术运算是否影响进位及判零标志控制位,其为0有效。LOAD是PC加1信号,P(1)-P(4)是四个测试判别信号,其功能是根据机器指令及相应微代码进行译码,使微程序输入相应的微地址入口,从而实现微程序的顺序、分支、循坏运行。

B字段中的RS-B、RD-B、RI-B分别为原寄存器选通输出信号、目的寄存器选通输出信号及变址寄存器选通输出信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通输出译码。

A字段中LDRi是存入工作寄存器信号的译码器是能控制位,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选择存入译码。

六.结论

这次的实验难度比较大,但是我认真听老师的讲解,并根据预习的信息和通过和同学的相互讨论和交流,还是较快的掌握了相关的操作,掌握了程序的编制和写入,并学习了指令的执行流程。

七.实验总结

本次实验难度较高,而且实验量大,所以首先预习工作要做好,否则很难按时按要求完成实验。实验分两部分进行,前面部分是微程序的编制、写入、观察微程序的运行,学习基本指令的执行流程。在这过程中,难点就是要掌握如何通过强制端设置分支地址,。后半部分就是用联机软件的逻辑示波器观察时序信号。这个相对简单,连接好操作起来也很快。

问题:

1、 本次实验共设计了几条指令?

答:共11条。分别是IN(输入),ADD(二进制加法),STA(存数),OUT(输出),JMP(无条件转移).

2、 S3、S2、S1、S0、M、CN控制信号共同起到什么作用?

答:S3 S2 S1 S0 M CN 控制信号共同起到选择进行何种算术逻辑运算的作用。

3、 写出WE信号的作用。

答:WE信号的作用是写命令。

4、 UA5-UA0是当前微地址还是后继微地址?

答:UA5-UA0是后继微地址。

八思考题

答题框:

(1)A

(2)C

(3)

(4)A

(5)A

(6)B

(7)C

(8)B

(9)A

(10)A

(11)B

(12)C

你可能感兴趣的:(控制器设计与仿真,实验计算机组成)