湖南大学
计算机与通信学院
CPU 设计实习报告
07 级计科 0701 班
20070810126
杨志华
模型计算机的一设计方案
一.数据格式设计
要求:本模型机是一个 8 位定点二进制计算机,具有四个通用寄存器:R
0
~
R
3
,能执行 11 条指令,主存容量为 256KB。
1.数据格式
数据按规定采用定点补码表示法,字长为 8 位,其中最高位(第 7 位)为
符号位,小数点位置定在符号位后面,其格式如下:
数值相对于十进制数的表示范围为:
-1≤X≤1―2
―7
二、指令系统设计
2.指令格式及功能
由于本模型机机器字只有 8 位二进制长度,故使用单字长指令和双字长指
令。
⑴ LDR Ri,D
格式 7 4 3 2 1 0
0 0 0 0 Ri
不 用
D
功能:
Ri←M(D)
(2) STR Ri,D
格式 7 4 3 2 1 0
0 0 0 1 Ri
不 用
D
功能:
M(D)←(Ri)
(3) ADD Ri,Rj
格式 7 4 3 2 1 0
0 0 1 0 Ri Rj
功能:
Ri ←(Ri)+ (Rj)
(4) SUB Ri,Rj
格式 7 4 3 2 1 0
尾 数符号
7 6 5 4 3 2 1 0
尾 数符号 尾 数尾 数符号
7 6 5 4 3 2 1 0
0 0 1 1 Ri Rj
功能:
Ri ←(Ri)- (Rj)
(5) AND Ri,Rj
格式 7 . . . 3 2 1 0
0 1 0 0 Ri Rj
功能:
Ri ←(Ri)∧ (Rj)
(6) OR Ri,Rj
格式 7. . . 3 2 1 0
0 1 0 1 Ri Rj
功能:
Ri ←(Ri)∨ (Rj)
(7) MUL Ri,Rj
格式 7 4 3 2 1 0
0 1 1 0 Ri Rj
功能:
Ri ←(Ri)× (Rj)
(8) 转移指令
格式 7 4 3 2 1 0
0 1 1 1
条件 不 用
D
功能:
条件码
00 无条件转移 PC ← D
01 有进位转移 PC ← D
10 结果为 0 转移 PC ← D
11 结果为负转移 PC ← D
IN ⑼ R
i
,M
j
格式 7 4 3 2 1 0
1 0 0 1 Ri Mj
其中 M
j
为设备地址,可以指定四种外围设备,当 M
j
=01 时,选中实验箱
的二进制代码开关。功能:
R
i
← (M
j
)
OUT ⑽ R
i
,M
j
格式 7 4 3 2 1 0
1 0 1 0 Ri Mj
当 M
j
=10 时,选中实验箱的显示灯。功能:
(M
j
)← R
i
HALT⑾ (停机指令)
格式 7 4 3 2 1 0
1 0 1 1
不用 不用
功能:
用于实现停机。
为了便于调试列出几条主要的指令且 ri 分别编号为
%R0,R1,R2,R3
HEX
Load 指令:00,04,08,0c load(R0,R1,R2,R3)设 ir1ir2=00;
STR 指令:10,14,18,1c STR(R0,R1,R2,R3)设 ir1ir2=00;
1:(R0-R1)0001 2:(R0-R2)0010 3:(R0-R3)0011
8:(R2-R0)1000 9:(R2-R1)1001 b:(R2-R3)1011
Add-2 sub-3 and-4 or-5 mull-6
Jump-指令 7 ir0ir1=00
70 无条件跳转;
74 有进位跳转;
78 结果为 0 跳转;
7c 结果为负跳转;
In 8 从二进制开关输入 01;
(R0,R1,R2,R3)1,5,9,d
Out 92 输出到实验箱 10;
(R0,R1,R2,R3)2,6,a,e
Halt a0 停机;%
具体设计
一:通用寄存器组的设计:
要让 4 个寄存器具有同等地位的进行工作就必需有设备地址作为标识,要对寄
存器直接操作而要不引起总线的数据冲突就不得不使用译码器。然而要根据题
目要求的对寄存器进行的实际控制有多种实现方法不同的方法所使用的其它设
备不一样如果只使用一个译码器组则在 romc(微控)中就要增加一个控制端
子及控制线的宽度就要增加一位,我在自己设计里为了减少控制线的宽度就使
用了多用一组译码器的方法来实现,具体实现如下:
控制线只要直接控制译码器就能直接控制寄存器了,由于 I,J 指的是同一种设
备地址,即 I,J 的地址值对于寄存器是同等的,所以就对俩个低电平信号进行就
可以得到控制信号了(对于 load 由于高电平要用与非门)。
二.运算器的设计: