cpu控制器的设计解读.docx
- 文档编号:1011427
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:22
- 大小:680.86KB
cpu控制器的设计解读.docx
《cpu控制器的设计解读.docx》由会员分享,可在线阅读,更多相关《cpu控制器的设计解读.docx(22页珍藏版)》请在冰豆网上搜索。
cpu控制器的设计解读
《计算机组成与结构》
课程设计报告
题目:
CPU控制器设计
院(系):
信息科学与工程
专业班级:
学生姓名:
学号:
指导教师:
顾兵
2015年06月15日至2015年06月26日
华中科技大学武昌分校制
计算机组成与结构课程设计任务书
一、设计(调查报告/论文)题目
CPU控制器设计
二、设计(调查报告/论文)主要内容
1.掌握CPU控制器的工作原理和逻辑功能。
2.运用VHDL实现能支持基本指令的单时钟控制器设计与调试。
3.采用QUARTUSII软件设计仿真和调试完成。
三、原始资料
[1]袁春风.计算机组成与系统结构.北京:
清华大学出版社,2010。
[2]唐朔飞.计算机组成原理.北京:
高等教育出版社,2008。
四、要求的设计(调查/论文)成果
1.课程设计报告
2.设计仿真文件
五、进程安排
讲解课程设计的具体内容、要求、安排、考核方法、注意事项及相关知识,帮助学生明确任务。
1天
查阅资料1天
整体方案设计,画出功能模块图1天
各模块的详细设计,画出相应逻辑电路图。
2天
在指定环境下完成系统实现、调试2天
撰写课程设计报告1天
验收并提问答辩1天
六、主要参考资料
[1]顾兵,陈国平.计算机组成与结构实践教程(修订版).2014.5。
[2]楼学庆,平玲娣.计算机组成课程设计.杭州:
淅江大学出版社.2007。
[3]王诚等.计算机组成与设计(第3版)实验指导.北京:
清华大学出版社,2008。
[4]DavidA.PattersonJohnL.Hennessy.计算机组成与设计(硬件/软件接口).康继昌等译.北京:
机械工业出版社,2012。
[5]袁春风.计算机组成与系统结构.北京:
清华大学出版社,2010。
[6]AlteraCorporation.Quartus_II官方教程-中文版.
目录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.1R-type型指令4
2.2.2Ori指令5
2.2.3lw指令6
2.2.4sw指令7
2.2.5branch指令7
2.2.6Jump指令8
2.2.7逻辑电路图9
2.3VHDL代码分析及实现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硬件描述语言实现能支持基本指令的单时钟控制器设计,采用QUARTUSII软件设计仿真和调试完成。
1.1.2功能要求
1.运用VHDL实现能支持基本指令的单时钟控制器设计与调试。
1>实现能够执行R类型、ori、addiu、lw、sw、beg以及jump指令的单时钟控制器使其能够支持基本的指令。
2>实现cpu的控制。
2.采用QUARTUSII软件设计仿真和调试完成。
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
加法指令的汇编格式addrd,rs,rt
加法指令的汇编格式subrd,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指令与控制信号真值表
op
000000
001101
001001
100011
101011
000100
000010
指令类型
R-type
ori
addiu
lw
sw
beg
jump
RegWr
1
1
1
1
x
x
x
ALUSrc
0
1
1
1
1
0
x
RegDst
1
0
0
0
x
x
x
MemtoReg
0
0
0
1
x
x
X
MemWr
0
0
0
0
1
0
0
Branch
0
0
0
0
0
1
0
Jump
0
0
0
0
0
0
1
ExtOp
x
0
1
1
1
x
x
ALUop<0>
1
0
0
0
0
0
X
ALUop<1>
x
1
0
0
0
x
X
ALUop<2>
x
1
1
0
0
1
X
2.1.3控制器设计思路流程图
根据各指令控制信号真值表可得主控制器设计思路流程图如图2.2所示。
图2.2设计思路流程图
2.2指令分析及逻辑电路图
2.2.1R-type型指令
图2.3是R-型指令的执行过程示意图,其中粗线描述了R-型指令的数据在数据通中的执行路径:
RegisterFile(Rs,Rt)→busA,busB→ALU→RegisterFile(Rd)。
图2.3R-型指令执行过程
控制信号的取值分析如下。
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.2Ori指令
指令完成的功能:
R[rt]←R[rs]opZeroExt[imm16]]
图2.4Ori的控制信号
控制信号的取值分析如下。
分支指令和跳转指令都为零Branch=jump=0因为是非分之指令,非跳转指令。
RegDst=1:
因为Ori指令的目的寄存器为Rt。
ALUSrc=1:
保证选择busB作为ALU的A口操作数。
。
ALUctr=or。
MemtoReg=0:
保证选择ALU结果送到目的寄存器。
RegWr=1:
保证在下个时钟到来时,在不发生溢出的情况下结果被写到目的寄存器。
MemWr=0:
保证在下个时钟到来时,不会有信息写到数据存储器。
ExpOp=x:
因为ALUSrc=0,所以扩展器Extender的值不会影响执行结果,故ExtOP取0或1都无所谓。
2.2.3lw指令
指令完成的功能:
R[rt]←M[R[rs]+SignExt[imm16]]
图2.5lw的控制信号
控制信号的取值分析如下。
分支指令和跳转指令都为零Branch=jump=0因为是非分之指令,非跳转指令。
RegDst=1:
因为lw指令的目的寄存器为Rt。
ALUSrc=1:
保证选择busA作为ALU的A口操作数。
。
ALUctr=add。
MemtoReg=1:
保证选择存储器结果送到目的寄存器。
RegWr=1:
保证在下个时钟到来时,在不发生溢出的情况下结果被写到目的寄存器。
MemWr=0:
保证在下个时钟到来时,不会有信息写到数据存储器。
ExpOp=1:
因为要利用扩展器Extender进行扩展。
2.2.4sw指令
指令完成的功能:
rt,rs,imm16
图2.6sw的控制信号
控制信号的取值分析如下。
分支指令和跳转指令都为零Branch=jump=0因为是非分之指令,非跳转指令。
RegDst=x:
因为不会写到寄存器。
ALUSrc=1:
保证选择busA作为ALU的A口操作数。
。
ALUctr=add。
MemtoReg=x:
有没有结果送到目的寄存器无所谓。
RegWr=0:
不会有结果被写到目的寄存器。
MemWr=1:
保证在下个时钟到来时,会有信息写到数据存储器。
ExpOp=1:
因为要利用扩展器Extender进行扩展。
2.2.5branch指令
指令完成的功能:
rs,rt,imm16
图2.7branch的控制信号
控制信号的取值分析如下。
分支指令置位,跳转指令清零Branch=1,jump=0因为是分之指令,非跳转指令。
寄存器写信号RegDst=x:
因为不会写到寄存器。
算术逻辑单元选择信号ALUSrc=0:
保证选择busB作为ALU的B口操作数。
。
算术逻辑单元控制信号ALUctr=sub。
存储器写寄存器信号MemtoReg=x:
有没有结果送到目的寄存器无所谓。
寄存器写信号RegWr=0:
不会有结果被写到目的寄存器。
存储器写信号MemWr=0:
保证在下个时钟到来时,不会有信息写到数据存储器。
符号扩展信号ExpOp=x:
因为不需要利用扩展器Extender进行扩展。
2.2.6Jump指令
指令完成的功能:
jtarget
图2.8jump指令的控制信号
控制信号的取值分析如下。
分支指令清零,跳转指令置位Branch=0,jump=1因为是非分之指令,跳转指令。
目的寄存器RegDst=x:
因为不会写到寄存器。
算术逻辑单元ALUSrc=x:
保证选择busB作为ALU的A口操作数。
。
算术逻辑单元控制信号ALUctr=x。
存储器到寄存器信号MemtoReg=x:
有没有结果送到目的寄存器无所谓。
寄存器写信号RegWr=0:
不会有结果被写到目的寄存器,避免寄存器在指令执行过程时被写入任何结果。
存储器写信号MemWr=0:
保证在下个时钟到来时,不会有信息写到数据存储器。
符号扩展信号ExpOp=x:
因为要利用扩展器Extender进行扩展。
2.2.7逻辑电路图
图2.9控制器逻辑电路图
2.3VHDL代码分析及实现
2.3.1代码分析
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cpu 控制器 设计 解读