(完整版)MIPS处理器设计说明说课讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(完整版)M I P S处理器
设计说明
西安邮电大学
实践课程报告书
课程名称:计算机组成与实践
院(系)名
:电子工程学院
称
专业班级:**
学号/姓名:**
实习时间:2015年3月6日至2015年6月19日
1 课程主要目的
本课程是在上学期《计算机组成与设计》课程学习的基础上,通过实践课的方式,依照集成电路设计流程,完成一个简单独立硬件功能电路模块的设计,从而到达对《计算机组成与设计》课程的深入理解和提高电路设计的实践能力,从理论和实验的结合中巩固计算机基本知识,熟练掌握电路设计的基本流程和原理,同时,加深对MIPS系统的组成部件及其电路结构,原理和功能的理解,掌握利用硬件描述语言和EDA工具进行MIPS设计的一般方法。
2 课程的主要内容和任务
MIPS是典型的32位定长指令字RISC处理器,要求深入理解MIPS处理器的内部结构及工作原理。采用verilogHDL设计一个兼容MIPS指令格式,具有10条以上指令功能的单周期CPU硬件电路,该32位MIPS设计内容主要包括系统中的基本组成部件(存储器,指令寄存器,寄存器堆,算术逻辑运算器,程序计数器,多路选择器,符号扩展等)的设计,仿真及硬件下载的方法和过程。设计过程中使用ISE仿真工具完成设计电路的仿真验证。
3总体设计方案
3.1指令及其功能表:
(1)R型指令:
(2)I型指令:
(3)J型指令:
3.2总体结构设计:
该MIPS主要由8个模块组成,各个子模块分别设计其特定的功能,最终利用一个总的模块进行子模块间连接,使得整个CPU能连贯执行指令,在仿真结果中观察设计结果,最终进行硬件下载,验证设计。其中各个模块简单功能如下:
(1)存储器模块:具备基本的读写功能,用于存放数据和指令。
(2)寄存器堆模块:由32个32位的寄存器组成,提供较大的存储空间,用于存放暂存数据和指令。
(3)算术逻辑运算器模块:执行加减法等算术运算,与非或等逻辑运算,以及比较移位传送等操作的功能部件,是该CPU的设计核心部分,存在不同的运算处理功能,是体现实验设计结果正确性的模块。
(4)立即数扩展模块:执行I型指令时需要立即数扩展,该模块用于MIPS符号扩展,将16位数据扩展为32位数据。
(5)主控制模块:用于控制各个模块之间的分工运行,产生不同数据通路的控制信号,保证指令顺序执行不发生紊乱。
(6)ALU控制模块:用于生成ALU执行各种功能的控制信号,使ALU 内部运行不发生紊乱。。
(7)分支跳转指令控制模块:用于生成分支和跳转指令的控制信号。
(8)取指模块:进行指令的取出及译码,同时包括程序计数器PC运行设计。
各模块间关系如下:
3.3接口定义和接口时序
说明:该CPU由cpu_clk和进行总的控制,并且输出程序计数器低4位进行简易流水灯显示,CPU运行的结果包括逻辑运算等在仿真界面中进行分析和设计验证。
cpu_clk上升沿有效
rst位低电平时复位有效
4 子模块详细设计
4.1 存储器模块设计
4.1.1模块方案设计
指令存储器用于存放CPU运算的程序指令和数据等,采用单端口存储器设计,设计最大为64个存储单元,每个存储单元数据宽
度为32bit。
4.1.2 接口定义
说明
序号接口信号名称方向
(I/O)
1clk I 存储器工作时钟,频率为
50Mhz
2rst I 存储器片选信号,低有效
3ExtMem_Adr [5:0]I 存储器地址线
4ExtMem_WR I 存储器读写信号,1为写反
之读
5ExtMem_Din [31:0]I 存储器输入数据线
6ExtMem32 [31:0]O 存储器输出数据线
4.1.3 模块仿真验证
4.2 寄存器堆模块设计
4.2.1模块方案设计
该MIPS指令格式中的寄存器号是5bits,指令可以访问32个32位的寄存器。这32个32位的寄存器构成一个寄存器堆。
4.2.2 接口定义
序号接口信号名称方向说明
1c lk I 处理器工作时钟
2rst I 复位信号
3Raddr1[4:0]I 读寄存器堆时的第1个寄存器下标
4Raddr2[4:0]I 读寄存器堆时的第2个寄存器下标
5Waddr[4:0]I 写寄存器堆时的寄存器下标
6We I 寄存器堆写使能
7Wdata [31:0]I 待写入寄存器堆的数据
8Rdata 1[31:0] O 读寄存器堆时第1个寄存器的输出
9Rdata 2[31:0] O 读寄存器堆时第2个寄存器的输出
4.2.3 模块仿真验证
4.3算术逻辑运算器模块设计
4.3.1 模块方案设计
运用alu_clt控制运算器的各种运算,包括无符号数的加法运算,
有符号数的加法运算,或逻辑运算,与逻辑运算,无符号数的减法运算,无符号小于置1运算,逻辑左移,逻辑右移,算术右移等。
4.3.2 接口定义
4.3.3 关键控制信号的产生
SUBctr = alu_clt[2];
ANDctr = alu_clt[0];
OVctr = !alu_clt[1]&alu_clt[0];
SIGctr = alu_clt[0];
OPctr[1] = alu_clt[2]&alu_clt[1]|alu_clt[3];
OPctr[0] = alu_clt[1];
4.3.4具体ALU实现如下图所示: