MIPS处理器设计说明剖析.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电大学
实践课程报告书
课程名称:计算机组成与实践
院(系)名称:电子工程学院
专业班级:**
学号/ 姓名:**
实习时间: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 型指令:
指令
指令格式
功能op rs rt rd shame func
add 000000 sj1 Sj2 jg xx 100000 Jg=sj1+sj2 addu 000000 100001 Jg=sj1+sj2 sub 000000 100010 Jg=sj1-sj2 subu 000000 Sj1 Sj2 jg xx 100011 Jg=sj1-sj2 or 000000 Sj1 Sj2 jg xx 000010 Jg=sj1|sj2 and 000000 Sj1 xx jg xx 000011 Jg=sj1&sj2 sla 000000 Sj1 xx jg 移位数000100 Jg lr 000000 sr 000000 ( 2) I 型指令: 指令 指令格式 功能op rs rt Immediate addi 001000 sj1 Sj2 Imm Sj2= sj1+imm addiu 001001 sj1 Sj2 Imm Sj2= sj1+imm andi 001100 sj1 Sj2 Imm Sj2= sj1&imm ori 001101 Sj1 Sj2 Imm Jg=sj1|sj2 Lw 100011 base rt offset offset Memory[base+imm] sw 101011 base rt offset Memory[base+imm] offset slti 001010 Sj1 Sj2 imm sj1=Sj2 sltu 001011 sj1 Sj2 imm Sj1=sj2 ( 3) J 型指令: 指令 指令格式 功能op rs rt offset Beq 000100 sj1 Sj2 offset If sj1 =sj2 then branch Bnq 000101 sj1 Sj2 offset If sj1 ≠sj2 then branch 3.2 总体结构设计: 该 MIPS 主要由 8 个模块组成,各个子模块分别设计其特定的功能,最终利用一个总 的模块进行子模块间连接,使得整个 CPU 能连贯执行指令,在仿真结果中观察设计结果,最终 进行硬件下载,验证设计。其中各个模块简单功能如下: (1)存储器模块:具备基本的读写功能,用于存放数据和指令。 (2)寄存器堆模块:由 32 个 32 位的寄存器组成,提供较大的存储空间,用于存放暂 存数据和指令。 (3)算术逻辑运算器模块:执行加减法等算术运算,与非或等逻辑运算,以及比较 移位传送等操作的功能部件,是该 CPU 的设计核心部分,存在不同的运算处理功能,是体现实 验设计结果正确性的模块。 (4)立即数扩展模块:执行 I 型指令时需要立即数扩展,该模块用于 MIPS 符号扩展,将16 位数据扩展为 32 位数据。 (5)主控制模块:用于控制各个模块之间的分工运行,产生不同数据通路的控制信 号,保证指令顺序执行不发生紊乱。 (6)ALU 控制模块:用于生成 ALU 执行各种功能的控制信号,使 ALU 内部运行不发生紊乱。。 (7)分支跳转指令控制模块:用于生成分支和跳转指令的控制信号。 ( 8)取指模块:进行指令的取出及译码,同时包括程序计数器PC 运行设计。 各模块间关系如下: MIPS(顶层) 立即数分支跳 算术逻 存储器寄存器主控制取指模ALU控转指令 扩展模辑运算模块堆模块模块块制模块控制模 块器模块 块 程序计数器译码模块取指模块模块 3.3 接口定义和接口时序 cpu_clk Out[3:0] MIPS rst 说明:该CPU 由 cpu_clk 和进行总的控制,并且输出程序计数器低 4 位进行简易流水灯显示, CPU 运行的结果包括逻辑运算等在仿真界面中进行分析和设计验证。 cpu_clk 上升沿有效 rst 位低电平时复位有效 4子模块详细设计 4.1存储器模块设计 4.1.1 模块方案设计 指令存储器用于存放CPU 运算的程序指令和数据等,采用单端口存储器