多周期MIPS CPU实验报告.doc

多周期MIPS CPU实验报告.doc

ID:57752720

大小:246.00 KB

页数:15页

时间:2020-09-02

多周期MIPS CPU实验报告.doc_第1页
多周期MIPS CPU实验报告.doc_第2页
多周期MIPS CPU实验报告.doc_第3页
多周期MIPS CPU实验报告.doc_第4页
多周期MIPS CPU实验报告.doc_第5页
资源描述:

《多周期MIPS CPU实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、组成原理实验报告【实验名称】多周期MIPSCPU设计【实验目的】1.学习如何使用ISE的IP核2.学习使用XilinxFPGA内的RAM资源3.熟悉mips指令集4.掌握多周期mipsCPU的原理。5.多周期状态机的编写。【实验内容】•设计CPU,完成以下程序代码的执行,其功能是起始数为3和3的斐波拉契数列的计算。只计算20个数。•.data•fibs:.word0:20#"array"of20wordstocontainfibvalues•size:.word20#sizeof"array"•temp:.word33•.text•la$t0,fibs#load

2、addressofarray•la$t5,size#loadaddressofsizevariable•lw$t5,0($t5)#loadarraysize•la$t3,temp#load•lw$t3,0($t3)•la$t4,temp•lw$t4,4($t4)•sw$t3,0($t0)#F[0]=$t3•sw$t4,4($t0)#F[1]=$t4•addi$t1,$t5,-2#Counterforloop,willexecute(size-2)times•loop:lw$t3,0($t0)#GetvaluefromarrayF[n]•lw$t4,4($t0)#

3、GetvaluefromarrayF[n+1]•add$t2,$t3,$t4#$t2=F[n]+F[n+1]•sw$t2,8($t0)#StoreF[n+2]=F[n]+F[n+1]inarray•addi$t0,$t0,4#incrementaddressofFib.numbersource•addi$t1,$t1,-1#decrementloopcounter•bgtz$t1,loop#repeatifnotfinishedyet.•out:•jout•实验设计中可以不使用给定的数据通路和状态机,但仅允许使用一个存储器。•对指令/数据存储器的附加要求:•使用

4、异步存储器,最高评分为√√•使用同步存储器,最高评分为√√√,使用同步存储器时,需要对数据通路和状态机进行适当修改。•需要例化一个mem,代码段和数据段首地址自行指定。【实验要求】•仿真查看数据ram内容是否正确•检查仿真执行状态等•检查代码设计,代码是否独立完成【实验操作及结果】按照所给ppt上的数据通路完成连线,并对jump进行针对性改进,完成连线设计。图中的每个块为一个模块。实验中控制电路部分主要用三段式状态机的方式对控制信号进行赋值,其中每个一个周期。PPT所给电路图为异步实现方式,现将其改为同步实现方式,只需在s0和s1之间加入一个状态,取名为s12。

5、再在外部电路连线中将输出为data的那个CLK模块删除掉即可改为同步实现方式。【仿真结果】DataandInstrMem中结果符合要求。仿真图【附:源代码】`timescale1ns/1psmoduleTop(inputclk,reset,output[31:0]PC,Instr);wire[31:0]PC1,Adr;wire[31:0]Data,RD1,RD2,A,B,SrcA,SrcB,ALUResult,ALUOut,SignImm,WD3,WD,RD,PCJump;wire[4:0]A1,A2,A3;wire[5:0]Funct,Op;wire[31:0

6、]Result;//自己定义的wirelorD,MemWrite,IRWrite,PCWrite,Branch,ALUSrcA,RegWrite,RegDst,MemtoReg,PCEn,zero,PCB;wire[2:0]ALUOp;wire[1:0]ALUSrcB,PCSrc;assignPC1=Result;assignOp=Instr[31:26];assignFunct=Instr[5:0];assignA1=Instr[25:21];assignA2=Instr[20:16];assignPCJump={PC[31:28],Instr[25:0],2

7、'b00};//????assignPCB=zero&Branch;assignPCEn=PCWrite

8、PCB;assignPC1=Result;assignWD=B;assignData=RD;CLKPC1toPC(.PC1(PC1),.clk(clk),.reset(reset),.EN(PCEn),.PC(PC));Mux32MuxAdr(.clk(clk),.A(PC),.B(ALUOut),.S(lorD),.C(Adr));InsttrandDataInsttrandData(//awritebread.clka(clk),.wea(MemWrit

9、e),//Bus[0:0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。