MIPS处理器设计说明_第1页
MIPS处理器设计说明_第2页
MIPS处理器设计说明_第3页
MIPS处理器设计说明_第4页
MIPS处理器设计说明_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西 安 邮 电 大 学 实 践 课 程 报 告 书 课程名称: 计算机组成与实践 院(系)名称:电子工程学院专业班级:*学号/姓名:*实习时间:2015年3月6日至2015年6月19日1 课程主要目的本课程是在上学期计算机组成与设计课程学习的基础上,通过实践课的方式,依照集成电路设计流程,完成一个简单独立硬件功能电路模块的设计,从而到达对计算机组成与设计课程的深入理解和提高电路设计的实践能力,从理论和实验的结合中巩固计算机基本知识,熟练掌握电路设计的基本流程和原理,同时,加深对MIPS系统的组成部件及其电路结构,原理和功能的理解,掌握利用硬件描述语言和EDA工具进行MIPS设计的一般方法。2

2、课程的主要内容和任务MIPS是典型的32位定长指令字RISC处理器,要求深入理解MIPS处理器的内部结构及工作原理。采用verilogHDL设计一个兼容MIPS指令格式,具有10条以上指令功能的单周期CPU硬件电路,该32位MIPS设计内容主要包括系统中的基本组成部件(存储器,指令寄存器,寄存器堆,算术逻辑运算器,程序计数器,多路选择器,符号扩展等)的设计,仿真及硬件下载的方法和过程。设计过程中使用ISE仿真工具完成设计电路的仿真验证。3总体设计方案3.1指令及其功能表: (1)R型指令:指令指令格式功能oprsrtrdshamefuncadd000000sj1Sj2jgxx100000Jg=

3、sj1+sj2addu000000100001Jg=sj1+sj2sub000000100010Jg=sj1-sj2subu000000Sj1Sj2jgxx100011Jg=sj1-sj2or000000Sj1Sj2jgxx000010Jg=sj1|sj2and000000Sj1xxjgxx000011Jg=sj1&sj2sla000000Sj1xxjg移位数000100Jg<sjlr000000sr000000(2)I型指令:指令指令格式功能oprsrtImmediateaddi001000sj1Sj2ImmSj2= sj1+immaddiu001001sj1Sj2ImmSj2

4、= sj1+immandi001100sj1Sj2ImmSj2= sj1&immori001101Sj1Sj2ImmJg=sj1|sj2Lw100011basertoffsetoffsetßMemorybase+immsw101011basertoffsetMemorybase+immßoffsetslti001010Sj1Sj2immsj1=Sj2<immsltu001011sj1Sj2immSj1=sj2<imm(3)J型指令:指令指令格式功能oprsrtoffsetBeq000100sj1Sj2offsetIf sj1=sj2 then branc

5、hBnq000101sj1Sj2offsetIf sj1sj2 then branch3.2总体结构设计: 该MIPS主要由8个模块组成,各个子模块分别设计其特定的功能,最终利用一个总的模块进行子模块间连接,使得整个CPU能连贯执行指令,在仿真结果中观察设计结果,最终进行硬件下载,验证设计。其中各个模块简单功能如下: (1)存储器模块:具备基本的读写功能,用于存放数据和指令。(2)寄存器堆模块:由32个32位的寄存器组成,提供较大的存储空间,用于存放暂存数据和指令。(3)算术逻辑运算器模块:执行加减法等算术运算,与非或等逻辑运算,以及比较移位传送等操作的功能部件,是该CPU的设计核心部分,存在

6、不同的运算处理功能,是体现实验设计结果正确性的模块。(4)立即数扩展模块:执行I型指令时需要立即数扩展,该模块用于MIPS符号扩展,将16位数据扩展为32位数据。(5)主控制模块:用于控制各个模块之间的分工运行,产生不同数据通路的控制信号,保证指令顺序执行不发生紊乱。 (6)ALU控制模块:用于生成ALU执行各种功能的控制信号,使ALU内部运行不发生紊乱。(7)分支跳转指令控制模块:用于生成分支和跳转指令的控制信号。(8)取指模块:进行指令的取出及译码,同时包括程序计数器PC运行设计。各模块间关系如下:3.3接口定义和接口时序 说明:该CPU由cpu_clk和进行总的控制,并且输出程序计数器低

7、4位进行简易流水灯显示,CPU运行的结果包括逻辑运算等在仿真界面中进行分析和设计验证。cpu_clk上升沿有效rst位低电平时复位有效4 子模块详细设计4.1 存储器模块设计 4.1.1模块方案设计指令存储器用于存放CPU运算的程序指令和数据等,采用单端口存储器设计,设计最大为64个存储单元,每个存储单元数据宽度为32bit。 4.1.2 接口定义序号接口信号名称方向(I/O)说明1clkI存储器工作时钟,频率为50Mhz2rstI存储器片选信号,低有效3ExtMem_Adr 5:0I存储器地址线4ExtMem_WRI存储器读写信号,1为写反之读5ExtMem_Din 31:0I存储器输入数据

8、线6ExtMem32 31:0O存储器输出数据线 4.1.3 模块仿真验证 4.2 寄存器堆模块设计 4.2.1模块方案设计该MIPS指令格式中的寄存器号是5bits,指令可以访问32个32位的寄存器。这32个32位的寄存器构成一个寄存器堆。 4.2.2 接口定义序号接口信号名称方向说明1clkI处理器工作时钟2rstI复位信号3Raddr14:0I读寄存器堆时的第1个寄存器下标4Raddr24:0I读寄存器堆时的第2个寄存器下标5Waddr4:0I写寄存器堆时的寄存器下标6WeI寄存器堆写使能7Wdata 31:0I待写入寄存器堆的数据8Rdata 131:0O读寄存器堆时第1个寄存器的输出

9、9Rdata 231:0O读寄存器堆时第2个寄存器的输出 4.2.3 模块仿真验证4.3算术逻辑运算器模块设计 4.3.1 模块方案设计 运用alu_clt控制运算器的各种运算,包括无符号数的加法运算,有符号数的加法运算,或逻辑运算,与逻辑运算,无符号数的减法运算,无符号小于置1运算,逻辑左移,逻辑右移,算术右移等。 4.3.2 接口定义序号接口信号名称方向(I/O)说明1ALU_DA 31:0I参与运算的第一个输入数据2ALU_DB 31:0I参与运算的第二个输入数据3alu_clt 3:0I运算功能编码4alu_shift 4:0I偏移量5ALU_ZeroO零标志位6Alu_Overflo

10、wO溢出标志位7ALU_Dout 31:0O运算结果输出位 4.3.3 关键控制信号的产生SUBctr = alu_clt2;ANDctr = alu_clt0;OVctr = !alu_clt1&alu_clt0;SIGctr = alu_clt0;OPctr1 = alu_clt2&alu_clt1|alu_clt3;OPctr0 = alu_clt1;4.3.4具体ALU实现如下图所示: 4.3.5 模块仿真验证 4.4 立即数扩展模块设计 4.4.1 模块方案设计设计一个32位MIPS符号扩展单元SE,用于将16位的数据转换为32位数据。 4.4.2 接口定义序号信号名

11、端口说明描述1Imm1615:0I来自指令寄存器的16位立即数2AluSrcI立即数扩展信号的使能端3bus31:0I4ExtImm3231:0O符号扩展后的32位立即数 4.4.3 模块仿真验证 4.5 主控制模块设计 4.5.1 模块方案设计以指令译码结果中的6位操作码及相关信号产生整个数据通路中的各个控制信号。 4.5.2 接口定义序号接口信号名称方向(I/O)说明1opI操作码2RegDstO目的寄存器选择3AluSrcOALU输入信号选择4ExtOpO立即数扩展的使能信号5RegWrO寄存器写使能6MemWr,O存储器写使能7MemtoRegO寄存器的装载信号选择 4.5.3各控制信

12、号的编码规则如下表所示:op000000001000001001001100001101100011101011001010001011000100000101RegDst01111101100RegWr11111101100ExtOp01000111011AluSrc01111111100MemWr00000010000MemtoReg00000100000 4.5.4 模块仿真验证 4.6 ALU控制模块设计 4.6.1 模块方案设计 通过译码结果中的高6位以及相关信号编码出数据通路中各个控制信号。 4.6.2 接口定义序号端口名称输入输出端口说明1rstI复位信号(高电平1有效)2cpu

13、_clkI时钟(上升沿有效)3func5:0I功能区分4opI操作码5Alu_ctrl3:0OAlu功能信号 4.6.3 执行R型指令func对应的Alu_ctrl编码如下表所示: funcAlu_ctrl100000000110000100001000100101100011010010010001001001010011101011011010101001110000001001000010100100001111000010000000 4.6.4 模块仿真验证 4.7 分支跳转指令控制模块设计 4.7.1 模块方案设计 运用译码结果的高6位以及ALU的两个输入数据决定分支及分支和跳转指

14、令的控制信号。 4.7.2 接口定义序号信号名端口定义描述1ALU_DAI算术逻辑单元数据A2ALU_DBI算术逻辑单元数据B3opI指令操作码4func,IR指令的功能操作码5JumpO跳转信号使能端6BranchO分支信号使能端 4.7.3 模块仿真验证 4.8 取指模块设计 4.8.1 模块方案设计 由程序计数器,取出指令以及译码三个子模块构成总的取指模块。 4.8.2 接口定义序号信号名方向(I/O)端口说明1clk2rst3ALU_DA算术逻辑单元数据A4Branch分支信号使能端5Jump跳转信号使能端6op指令操作码7rs8rt9rd10funcR指令的功能操作码11shamt偏

15、移量12imm16立即数13ALU_DB算术逻辑单元数据B14Pc_out程序计数器输出 4.8.3 电路基本构成如下图所示:4.8.4 跳转和分支指令执行时PC_out的编码规律Jump:Pc_out<= ALU_DA Branch : Pc_out<= Pc_out+1+ALU_DB正常情况下:Pc_out<=Pc_out+1 4.8.5 模块仿真验证 5 设计总体连接及仿真验证5.1 设计总体连线5.2 在ISE仿真环境下仿真验证设计结果,仿真结果如下图所示:5.3 仿真结果分析 由仿真结果得知该CPU执行的12条指令均正常运行,实验基本成功,但是设计较为简单,并未涵盖

16、太多复杂指令,需要进一步改善,使其趋于完善。 6、实践课总结和心得体会 西安邮电大学 电子工程学院 计算机组成与实践 实践课程过程考核表学生姓名*班级/学号*承担任务实验室微电子实验室所在部门微电子学系实施时间2015年3月6日 2015年6月19日实践课程:时间安排、具体内容及成绩考核实施时间具体内容安排考核结果第1周1、 实践课程讲解,任务要求说明,学习和实践内容安排2、 兼容MIPS格式指令系统设计第23周1、指令存储器设计,寄存器堆设计第46周1、 ALU设计基本算术、逻辑单元的设计 32位超前进位加法器的设计 32位桶式移位寄存器的设计第78周1、 取指令部件的设计2、 立即数处理单元设计第911周1、单周期处理器设计R型指令的数据通路设计I型指令的数据通路设计Load/Store指令的数据通路设计分支指令/转移指令的数据通路设计 综合12条指令的完整数据通路设计第12周1、ALU控制单元设计,主控制单元的设计第1314周1、单周期处理器总体连接第1415周1、单周期处理器总体仿真验证第16周课程考核验收 指导教师对学生的评价学习态度 认真 一般 不认真学习纪律 全勤 偶尔缺勤 经常缺勤实践能力 很强 一般 较差指导教师对学生专业知识或社会实践能力等情况的意见 指导教师

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论