资源描述:
《r型指令的cpu设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、杭州电子科技大学计算机学院实验报告1.掌握MIPSR型指令的数据通路设计,掌握指令流和数裾流的控制方法。2.掌握完整的单周期CPU顶层模块的设计方法实验3.实现MIPSR型指令的功能目的1.ISEDesignSuite142.DigilentAdept3.Nexys3实验板/yxc6slxl6-3csg324白0晶Test.CPU(Test.CPU.v)白.0r_cpu-CPU(CPU.v)E0fetch-Fetchjnst(Fetch」L...qInst_mem•Inst_addrregister-Registerfile(Re3alu-ALU(AL
2、U.v)0Test.CPU.ucf本买验买现MIPS核心指令集的一个R型指令集,包含八条指令。将买现买验三的ALU模块,实验四实现的寄存器模块,实验七实现的指定储存器和取指令模块一起集成起来完成本实验。各个模块之间的关系图顶层模块:moduleTestCPU(rst,elk,SW,LED);inputrst,elk;input[2:0]SW;//选择信号outputreg[7:0]LED;wireZE,OF;wire[31:0]ALUF;CPUr_cpu(rst,elk,ZF,OP,ALUJ7)always®(*)begincase(SW)3’b000
3、:LED=ALU—F[7:0];-»1J1J381<♦•♦5312rLrLFFIIuuLLAAIIDDEELL••■•11oo1oobb333’b011:LED=ALU_E[31:24];3’b100:beginLED[7:2]=0;LED[1]=0F;LED[0]=ZF;enddefault:LED=0;endcaseendendmodule综合ALU,取指令,寄存器模块的顶层模块moduleCPU(inputrst,inputelk,outputZF,output0E,output[31:0]F);regwrite_reg;wire[31:0]In
4、st_code;wire[31:0]R_Data_A;wire[31:0]RDataB;reg[2:0]ALU_0P;Eetch_Tnstfetch(rst,elk,Tnst_code);Registerfileregister(Inst_code[25:21],lnst_code[20:16],Inst_code[l5:11],writo_reg,F,〜elk,rst,RDataA,RDataB);ALUalu(R_Data_A,R_Data_B,F,ALU_0P,ZF,0E);always®(*)beginwrite_reg=0;ALU0P=0;i
5、f(Instcode[31:26]==0)begincase(instcode[5:0])6'b100000ilLOlWb100;6,bl00010:ALUOP=3’bl01;6’bl00100:ALUOl^bOOO;6’bl00101:AUJ_OP=3’b001;6’bl00110:ALU_0P=3’b010;6,bl00111:ALU_0P=3,bOll;6’bl01011:ALUOP=3’bllO;6’b000100:ALU_01)6、,B,F,ALUOP,ZF,OF);input[31:0]A,B;input[2:0]ALUOP;outputregZE,OF;outputreg[31:0]F;regC32;always@(*)beginOF=l’bO;3’b011:LED=ALU_E[31:24];3’b100:beginLED[7:2]=0;LED[1]=0F;LED[0]=ZF;enddefault:LED=0;endcaseendendmodule综合ALU,取指令,寄存器模块的顶层模块moduleCPU(inputrst,inputelk,outputZF,output0E
7、,output[31:0]F);regwrite_reg;wire[31:0]Inst_code;wire[31:0]R_Data_A;wire[31:0]RDataB;reg[2:0]ALU_0P;Eetch_Tnstfetch(rst,elk,Tnst_code);Registerfileregister(Inst_code[25:21],lnst_code[20:16],Inst_code[l5:11],writo_reg,F,〜elk,rst,RDataA,RDataB);ALUalu(R_Data_A,R_Data_B,F,ALU_0P,ZF
8、,0E);always®(*)beginwrite_reg=0;ALU0P=0;if(Inst