基本模型机设计与实现
一.实验目的
1.深入理解基本模型计算机的功能、组成知识;
2.深入学习计算机各类典型指令的执行流程;
3.学习微程序控制器的设计过程和相关技术,掌握 LPM_ROM 的配置方法。
4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模
型计算机。
5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。掌握
微程序的设计方法,学会编写二进制微指令代码表。
6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方
法。
二.实验原理
1.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在
微过程控制下自动产生各部件单元控制信号,实现特定的功能。实验中,计算机数据通路的
控制将由微过程控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令
周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2.指令格式
(1)指令格式
采用寄存器直接寻址方式,其格式如下:
位
功能
7
6
5
OP-CODE
4
3
2
1
0
rs
rd
本实验采用五条机器指令:IN(输入)、
ADD(二进制加法)、STA(存数)、OUT
(输出)、JMP(无条件转移),其指令格
式如下(最高 4 位二进制数为操作码):
其中,OP-CODE 为操作码,rs 为源寄存器,rd 为目的寄存器,并规定:
Rs 或 rd
选定的寄存器
00
01
10
R0
R1
R2
助记符
IN
ADD addr
STA addr
OUT
addr
JMP addr
机器指令码
0 0H
1 0H
2 0H
3 0H
4 0H
Addr 地址码
功能说明
“INPUT”中的数据→R0
XX H
XX H
XX H
XX H
R0+[addr] ->R0
R0 -> [addr]
[addr] -> BUS
addr →PC
其中 IN 为单字长(8 位二进制),其余为双字长指令,XX H 为 addr 对应的十六进制地
址码。为了向 RAM 中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设
计三个控制台操作微程序。
1,存储
器 读 操 作
(KRD):下
载实验程序
后按总清除
按键(CLR)
后,控制台
SWA 、 SWB
为“0 0”时,
可对 RAM 连
续手动读入
操作。
2, 存
储器写操作
(KWE):下
载实验程序
后按总清除
图 6-1 数据通路框图
按键(CLR)后,控制台 SWA、SWB 为“0 1”时,可对 RAM 连续手动写操作。
3、启动程序(RP):下载实验程序后按总清除按键(CLR)后,控制台 SWA、SWB 为
“1 1”时,即可转入到微地址“01”号“取指令”微指令,启动程序运行。
根据以上要求设计数据通路框图,如图 5-1 所
示。
SWB
SWA
0
0
1
0
1
1
控制台指令
读内存(KRD)
写内存(KWE)
启动程序(RP)
24
S3
23
S2
22
S1
20
21
19
S0 M Cn
18
WE
表 6-1 24 位微代码定义:
17
A9
15 14 13
16
A8
B
12 11 10
9 8 7
C
6
uA5
5
uA4
4
uA3
3
uA2
2
uA1
1
uA0
C 字段
A
表 6-2 A、B、C 各字段功能说明:
B 字段
A 字段
10
0
1
0
1
0
1
0
13 选择
0
1
0
1
0
1
0
12
0
0
0
0
1
1
1
11
0
0
1
1
0
0
1
14
0
0
1
1
0
0
1
15
0
0
0
0
1
1
1
RS-B
P(1)
LDRi
LDDR1
LDDR2
LDIR
LOAD
LDAR
24 位微代码中各信号的功能
(1) uA5—uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的微地址。
(2) S3、S2、Sl、S0:由微程序控制器输出的 ALU 操作选择信号,以控制执行 16 种算术
P(4)
LDAR
LDPC
ALU-B
PC-B
选择 9
0
0
0
0
1
1
1
8
0
0
1
1
0
0
1
7 选择
0
1
0
1
0
1
0
操作或 16 种逻辑操作中的某一种操作。
(3) M:微程序控制输出的 ALU 操作方式选择信号端。M=0 执行算术操作;M=l 执行
逻辑操作。
(4) Cn:微程序控制器输出的进位标志信号,Cn=0 表示 ALU 运算时最低位有进位,
Cn=1 则表示无进位。 (5)WE:微程序控制器输出的 RAM 控制信号。当/CE=0 时,如
WE=0 为存储器读;如 WE=1 为存储器写。 (6) A9、A8——译码后产生 CS0、CS1、CS2 信
号,分别作为 SW_B、RAM、LED 的选通控制信号。 (7) A 字段(15、14、13)——译码后
产生与总线相连接的各单元的输入选通信号(见表 6-1)。
(8) B 字段(12、11、10)——译码后产生与总线相连接的各单元的输出选通信号。
(9) C 字段(9、8、7) ——译码后产生分支判断测试信号 P(1)~P(4)和 LDPC 信号。
系统涉及到的微程序流程见图 6-2。当执行“取指令”微指令时,该微指令的判断测
试字段为 P(1)测试。由于“取指令”微指令是所有微程序都使用的公用微指令,因此 P(1)
的测试结果出现多路分支(见图 6-2 左图)。用指令寄存器的高 4 位(IR7-IR4)作为测试条
件,出现 5 路分支,占用 5 个固定地址单元。
控制台操作为 P(4)测试(见图 6-2 右图),它以控制台信号 SWB、SWA 作为测试条件,
出现了 3 路分支,占用 3 个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就
可以一条微指令占用控制存储器的一个微地址单元,随意填写。注意:微程序流程图上的微
地址为 8 进制!
当全部微程序设计完毕后,应将每条微指令代码化,表 6-2 即为图 6-2 的微程序流程
图按微指令格式转化而成的“二进制微代码表”。
表 6-2 二进制微代码表
微指令
S 3 S 2 S 1 S 0 M C N W E A 9 A 8
0
1
0 1 8 1 1 0
1
0
0 0 E D 8 2
1
0
0 0 C 0 4 8
0
1
0 0 E 0 0 4
1
0
0 0 B 0 0 5
1
0
0 1 A 2 0 6
1
1
9 1 9 A 0 1
1
0 0 E 0 0 D 0
0
0
0 0 1 0 0 1
0 0 E D 8 3
0
1
1
0
0 0 E D 8 7
1
0
0 0 E D 8 E
0 0 E D 9 6
0
1
1
0
0 3 8 2 0 1
1
0
0 0 E 0 0 F
1
0
0 0 A 0 1 5
0 1 E D 9 2
0
1
1
0
0 1 E D 9 4
1
0
0 0 A 0 1 0
0 0 8 0 0 1
0
1
0
0
0 6 2 0 1 1
0
0
0 7 0 A 0 1
0 0 D 1 8 1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
微地址
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
2 0
2 1
2 2
2 3
2 4
2 5
2 6
A
0 0 0
1 1 0
1 0 0
1 1 0
0 1 1
0 1 0
0 0 1
1 1 0
0 0 1
1 1 0
1 1 0
1 1 0
1 1 0
0 0 0
1 1 0
0 1 0
1 1 0
1 1 0
0 1 0
0 0 0
0 1 0
0 0 0
1 0 1
B
0 0 0
1 1 0
0 0 0
0 0 0
0 0 0
0 0 1
1 0 1
0 0 0
0 0 0
1 1 0
1 1 0
1 1 0
1 1 0
0 0 1
0 0 0
0 0 0
1 1 0
1 1 0
0 0 0
0 0 0
0 0 0
1 0 1
0 0 0
C
UA5—UA0
1 0 0
1 1 0
0 0 1
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
1 1 0
1 1 0
1 1 0
1 1 0
0 0 0
0 0 0
0 0 0
1 1 0
1 1 0
0 0 0
0 0 0
0 0 0
0 0 0
1 1 0
0 1 0 0 0 0
0 0 0 0 1 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 1 0 1
0 0 0 1 1 0
0 0 0 0 0 1
0 0 1 1 0 1
0 0 0 0 0 1
0 0 0 0 1 1
0 0 0 1 1 1
0 0 1 1 1 0
0 1 0 1 1 0
0 0 0 0 0 1
0 0 1 1 1 1
0 1 0 1 0 1
0 1 0 0 1 0
0 1 0 1 0 0
0 1 0 0 0 0
0 0 0 0 0 1
0 1 0 0 0 1
0 0 0 0 0 1
0 0 0 0 0 1
指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,
先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码段,
由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试“P(1)”,通过节拍脉
冲 T4 的控制,以便识别所要求的操作。
指令译码器: 根据指令中的操作码强置微控制器单元的微地址,使下一条微指令指向相应的
微程序首地址。
实验中 LCD 液晶显示屏可以用来显示模型机 CPU 中各组成单元的内容。将 B100_C.sof
文件下载到实验台后,按系统复位键,LCD 液晶显示屏即显示 CPU 中各组成单元的内容。其
功能说明如下:
LCD 液晶显示屏功能说明
作 用
名称
作 用
图 6-4
LCD 液晶显示屏
输入单元 INPUT
名称
IN
OUT 输出单元 OUTPUT
ALU 算术逻辑单元
BUS 内部数据总线
R0
R1
R2
寄存器 R0
寄存器 R1
寄存器 R2
DR1
DR2
PC
AR
RAM
IR
MC
暂存器 DR1
暂存器 DR2
程序计数器
地址寄存器
程序/数据存储器
指令寄存器
微程序控制器
实验程序 1:
图 6-3 模型计算机电路原理图
三.实验步骤
实验要求设计自己的微指令并执行不少于 5 条指令
1) . 设计指令的流程图
2) 根据流程图编写编码表
3) 根据微指令表设计微程序