cpu控制器的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《计算机组成与结构》

课程设计报告

题目:CPU控制器设计

院(系):信息科学与工程

专业班级:

学生姓名:

学号:

指导教师:顾兵

20 15 年 06 月 15 日至20 15 年 06 月 26 日

华中科技大学武昌分校制

计算机组成与结构课程设计任务书

目录

目录 (i)

1需求与总体设计 (1)

1.1设计任务及功能要求 (1)

1.1.1设计任务 (1)

1.1.2功能要求 (1)

1.2总体设计 (1)

1.2.1总体设计原理 (1)

1.2.2总体设计说明 (1)

1.3总体框图 (2)

2详细设计与实现 (3)

2.1方案设计与实现 (3)

2.1.1输入与输出逻辑图 (3)

2.1.2指令与控制信号真值表 (3)

2.1.3控制器设计思路流程图 (4)

2.2指令分析及逻辑电路图 (4)

2.2.1 R-type型指令 (4)

2.2.2 Ori指令 (5)

2.2.3 lw指令 (6)

2.2.4 sw指令 (7)

2.2.5 branch指令 (7)

2.2.6 Jump指令 (8)

2.2.7逻辑电路图 (9)

2.3 VHDL代码分析及实现 (10)

2.3.1代码分析 (10)

2.3.2代码实现 (11)

3电路仿真调试 (14)

3.1代码仿真 (14)

3.2功能仿真及调试 (14)

总结 (17)

参考文献 (18)

1需求与总体设计

1.1设计任务及功能要求

1.1.1设计任务

通过对CPU的工作原理和逻辑功能的理解,运用VHDL硬件描述语言实现能支持基本指令的单时钟控制器设计,采用QUARTUS II软件设计仿真和调试完成。

1.1.2功能要求

1.运用VHDL实现能支持基本指令的单时钟控制器设计与调试。

1>实现能够执行R类型、ori、addiu、lw、sw、beg以及jump指令的单时钟控制器使其能够支持基本的指令。

2>实现cpu的控制。

2.采用QUARTUS II软件设计仿真和调试完成。

1.2总体设计

1.2.1总体设计原理

CPU每次从存储器读取一条指令后,PC指针指向正在取值的指令并存放到指令寄存器IR中,IR将指令送到控制器,控制器对指令进行译码,判断指令类型,从而生成相应指令对应的的数据通路控制信号,指挥整个CPU的运转。

控制单元主要包含一个指令译码器,输入的是指令操作码op(R-型指令还包括功能码func),输出的是控制信号。所以,控制单元的设计过程如下。

1>根据每条指令的功能,分析控制信号的取值,并在表中列出。

2>根据列出的指令和控制信号的关系,写出每个控制信号的逻辑表达式。

1.2.2总体设计说明

1)指令格式如下:

MIPS指令分为三种指令:R_Type,I_Type,J_Type

R_Type 如:加法ADD 减法SUBSTRACT

加法指令的汇编格式add rd, rs, rt

加法指令的汇编格式sub rd, rs, rt

图1.1 指令格式

2)设计步骤:

第一步:确定每个元件所需控制信号的取值。

第二步:汇总所有指令所涉及到的控制信号,生成一张反映指令与控制信号之间关系的表。

第三步:根据表得到每个控制信号的逻辑表达式,据此设计控制器电路。

1.3总体框图

总体设计框图如图1.1:

图1.2 控制器总体框图

2详细设计与实现2.1方案设计与实现

2.1.1输入与输出逻辑图

由cpu控制器的功能原理得出输入与输出逻辑图如下:

图2.1 输入与输出逻辑图2.1.2指令与控制信号真值表

查阅得到指令与控制信号真值表如下:

表2.1指令与控制信号真值表

2.1.3控制器设计思路流程图

根据各指令控制信号真值表可得主控制器设计思路流程图如图2.2所示。

图2.2 设计思路流程图

2.2指令分析及逻辑电路图

2.2.1 R-type型指令

图2.3是R-型指令的执行过程示意图,其中粗线描述了R-型指令的数据在数据通中的执行路径:Register File(Rs,Rt)→busA,busB→ALU→Register File(Rd)。

图2.3 R-型指令执行过程

控制信号的取值分析如下。

Branch=Jump=0:因为是非分支指令、非无条件跳转指令。

RegDst=1:因为R-型指令的目的寄存器为Rd。

ALUSrc=0:保证选择busB作为ALU的B口操作数。

MemtoReg=0:保证选择ALU结果送到目的寄存器。

RegWr=1:保证在下个时钟到来时,在不发生溢出的情况下结果被写到目的寄存器。

MemWr=0:保证下一个时钟到来时,不会有信息写到数据存储器。

ExtOp=x:因为ALUSrc=0,所以扩展器Extender的值不会影响执行结果,故ExtOp 取0或1都无所谓。

2.2.2 Ori指令

指令完成的功能:R[rt] ←R[rs] op ZeroExt[imm16]]

图2.4 Ori的控制信号

控制信号的取值分析如下。

分支指令和跳转指令都为零Branch=jump=0因为是非分之指令,非跳转指令。

RegDst=1:因为Ori指令的目的寄存器为Rt。

相关文档
最新文档