- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)