推荐-组合逻辑控制单元设计 精品
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验课题
实验要求:
按照题目要求用硬布线(组合逻辑)控制法设计一个简单模型机的控制单元CU(微操作信号产生电路),决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。
主要元件设计:
1.指令译码器
功能要求:3-8译码器。
2.控制单元
功能要求:假设该模型机有8条不同类型的指令。包括:算术运算、逻辑运算、移位、数据传送、访存操作、转移等。根据每条指令的功能和时序,分析其执行过程中需要在各个阶段产生的全部微操作,导出产生这些微操作控制信号的逻辑。
3.用层次结构设计的方法设计一个控制单元CU(微操作控制信号产生电路)。包括指令译码器和控制单元。
功能要求:能够正确产生8条不同指令在执行过程中(每个机器周期、每拍)发出的全部微操作。
二、逻辑设计
写该实验的逻辑设计,包括:顶层系统框图,下层各主要元件的系统框图。顶层和下层各主要元件的端口(引脚)描述:端口名称、功能、有效电平、位数等。逻辑图,必须在图中清楚地标出每个内部连接线的Signal(与VHDL 程序中的Signal一致)。根据所用的描述方式,可能还需要有:真值表/功能表/逻辑函数等。
1、3-8译码器:
系统框图:
S是工作信号,当S=1时,3-8译码器工作;当S=0时,3-8译码器不工作。A是输入信号,Y是输出信号
S A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
1 0 0 0 0 0 0 0 0 0 0 1 加法
1 0 0 1 0 0 0 0 0 0 1 0 与
1 0 1 0 0 0 0 0 0 1 0 0 或
1 0 1 1 0 0 0 0 1 0 0 0 左移
1 1 0 0 0 0 0 1 0 0 0 0 右移
1 1 0 1 0 0 1 0 0 0 0 0 数据传送
1 1 1 0 0 1 0 0 0 0 0 0 取数
1 1 1 1 1 0 0 0 0 0 0 0 无条件转移
0 ×××0 0 0 0 0 0 0 0
Y(0)<=S and (not A(2)) and (not A(1)) and (not A(0));
Y(1)<=S and (not A(2)) and (not A(1)) and A(0);
Y(2)<=S and (not A(2)) and A(1) and (not A(0));
Y(4)<=S and A(2) and (not A(1)) and (not A(0)); Y(5)<=S and A(2) and (not A(1)) and A(0); Y(6)<=S and A(2) and A(1) and (not A(0)); Y(7)<=S and A(2) and A(1) and A(0); 2、控制单元:
设计过程:把每条指令的实现分成取指令、分析指令、执行指令三个步骤,每一步由一个机器周期实现,一条指令的实现需要三个机器周期,即M1(取指周期)、M2(分析周期)、M3(执行周期);每个机器周期由三个节拍组成,即T0、T1、T2。如下图所示:
1、加法指令:寄存器R1中的一个数与寄存器R0中的一个数相加,结果放在R1中。 即实现(R0)+(R1)→R1
2、与指令:寄存器R1中的一个数与寄存器R0中的一个数,结果放在R1中。 即实现(R1)and (R0) → R1
3、或指令:寄存器R1中的一个数或寄存器R0中的一个数,结果放在R1中。 即实现(R1)or (R0) → R1
4、逻辑左移指令:寄存器R1中的数左移,移动位数存放在寄存器R0中,结果放在R1中。 即实现(R1))左移(0R R1
5、逻辑右移指令:寄存器R1中的数左移,移动位数存放在寄存器R0中,结果放在R1中。 即实现(R1))右移(0R R1
6、数据传送指令:寄存器R0中的数据送到寄存器R1中。即实现(R0)→ R1。
7、取数指令:取出存储器中的一个数(地址在寄存器R0中)送到寄存器R1中。即实现 ((R0))→(R1)
8、无条件转移指令:寄存器R1中的地址送到PC 中。即实现(R1)→ PC
8条指令的微操作如下表所示,以教材P122的CPU 控制图(省去了M/IO 、ADS )为例: 由于每条指令取指周期的微操作是一样的,所以可以先设计取指周期微操作的节拍安排。 取指周期:T0:PC →AB ,W/R =0
T1:DB →IR
机器周期
节拍
T 0 T 1 T 2
系统框图:
PC→AB = M0·T0
W/R=0 = M0·T0+M1·T1·取数
DB→IR = M0·T1
PC+1 = M0 ·T2
rs1→GR = M1 ·T0
(rs1)→ALU = M1 ·T0
+ = M1 ·T0·取数+M2·T1·(加+传送+取数+转移)
ALU→AR =M1 ·T1 ·取数
AR→AB =M1·T1 ·取数
rd→GR =M1 ·T2·(加法+与+或+左移+右移)
(rd)→ALU = M1 ·T2·(加法+与+或+左移+右移)
DB→DR = M1 ·T2·取数
DR→ALU = M2 ·T0·取数
∧= M2·T1·与
∨= M2·T1·或
←= M2·T1·左移
→=M2·T1·右移
ALU→GR = M2·T2·(加法+与+或+左移+右移+数据传送+取数) ALU→PC = M2·T2·转移
3、层次结构控制单元:
逻辑图: