数字系统设计实验--流水线MIPS微处理器设计.doc

数字系统设计实验--流水线MIPS微处理器设计.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字系统设计实验--流水线MIPS微处理器设计

一、实验目的 (1)了解提高CPU性能的方法。 (2)理解数据冒险、控制冒险的概念以及流水线冲突的解决方法。 (3)掌握流水线MIPS微处理器的工作原理。 (4)掌握流水线MIPS微处理器的测试方法。 二、实验任务 设计一个32位流水线MIPS微处理器,具体要求如下设计要求: (1)至少执行下列MIPS32指令。 算数运算指令:ADD ADDU SUB SUBU ADDI ADDU 逻辑运算指令:AND OR NOR XOR ANDI ORI XORI SLT SLTI SLTU SLTIU 移位指令:SLL SLLV SRL SRLV SRA 条件分支指令:BEQ BNE BGEZ BGTZ BLEZ BLTZ 无条件跳转指令:J JR 数据传输指令:LW SW 空指令:NOP (2)在用5级流水线技术,对数据冒险实现转发或阻塞功能。 (3)在XUP Vietex-II Pro开发系统中实现MIPS微处理器,要求CPU的运行速度大于25MHz. 三、实验原理 1.流水线MIPS CPU总体设计 流水线是数字系统中一种提高系统稳定性和工作速度的方法,广泛应用在高档CPU的构建中。根据MIPS处理器指令的特点,将整体的处理过程分为取指令(IF)、指令译码、执行、存储器访问和寄存器写回五级,对应多周期CPU的五个处理阶段。如图1所示,一个指令的执行需要五个时钟周期,每个时钟周期上升沿来临时,此指令所代表的一系列数据和控制信息转移到下一级处理。 图1 流水线流水作业示意图 一条MIPS指令分为五个处理步骤,即五级流水线,的具体执行过程如图2所示。 图2 五级流水线MIPS CPU初步原理框图 流水线寄存器:为了在其它四级流水线中各条指令保持各自的值,从指令存储器中读出的指令必须保存在寄存器中。同样的方法应用到每个流水线步骤中,需要在上图中各级之间加入寄存器,如图3所示。 图3.在各级分割线添加寄存器后的框图 由于在流水线中,数据和控制信息将在时钟上升沿转移到下一级,所以规定流水线转移的变量命名遵守如下格式:名称_流水线级名称。 例如,在ID级指令译码电路(DECODE)产生的寄存器写允许信号RegWrite在ID级、EX级、MEM级和WB级上的命名分别为RegWrite_id、RegWrite_ex、RegWrite_men和RegWrite_wb。在顶层文件中,类似的变量名称有近百个,这样的命名方式起到了很好的识别作用。 1.MIPS指令格式: ①R型指令格式 本实验需要实现的R型指令有: I)算术逻辑运算指令: ADD、ADDU、SUB、SUBU、AND、OR、NOR、 XOR 、SLT、SLTU II)移位指令:SLLV、SRLV、SRAV、SLL、SRL、SRA III)寄存器跳转指令:JR ②I型指令格式 本实验需要实现的I型指令有: I)存储器访问指令:LW、SW II)立即数算术逻辑运算指令:ADDI、ADDIU、ANDI、ORI、XORI、SLTI、SLTIU III)分支指令:BEQ、BNE、BGEZ、BGTZ、BLEZ、BLTZ 分支地址为:PC+4+(sign-extend(Imm)2) ③J型指令格式 本实验需要实现的J型指令只有:无条件跳转指令:J 跳转地址为:{PC[31:28],IR[25:0],2’b00} 特别注意: 寄存器跳转指令JR不是J型指令,而是R型指令,其指令格式为: 跳转地址为:$ra,寄存器号为rs 移位指令SLL、SRL、SRA只有rt一个源操作数: 3、取字指令的操作过程:rt = Mem[rs+sign_extend(imm)] 存字指令的操作过程: Mem[rs+sign_extend(imm)] = rt 4、I型指令中立即数算术逻辑运算指令对立即数(Imm)的处理应分为两类情况考虑: 当指令为ADDI、ADDIU、SLTI、SLTIU时,指令中的16位立即数(Imm)应做符 号扩展为32位。此符号扩展电路在ID级完成。 当指令为ANDI、ORI、XORI时,Imm应做“0”扩展为32位。考虑到资源的限制, 在执行ANDI、ORI、XORI指令时, “0”扩展功能放在ALU内部(即EX级)完成。 流水线中的控制信号 为保证CPU按照指令正常运行,分别设置各个级的控制信号: IF级:取指令级。从ROM中读取指令,并在下一个时钟沿到来时把指令送到ID级的 指令缓冲器中。该级控制信号决定下一个指令指针的PCSource信号、阻塞流水线的PC_IFwrite信号、清空流水线的IF_flush信号。 ID级:指令译码器。对IF级来的指令进

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档