(完整版)MIPS处理器设计说明说课讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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实现如下图所示:

相关文档
最新文档