资源描述:
《杭电计组实验10-实现R-I-J型指令的CPU设计实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告2018年6月9日成绩:姓名阳光男学号16041321班级16052317专业计算机科学与技术课程名称《计算机组成原理与系统结构试验》任课老师张翔老师指导老师张翔老师机位号默认实验序号10实验名称《实验十实现R-I-J型指令的CPU设计实验》实验时间2018/6/9实验地点1教221实验设备号个人电脑、Nexys3开发板一、实验程序源代码顶层RI型指令CPU模块测试文件:moduletest;//Inputsregrst;regclk_100MHz;regclk;//OutputswireZF;wireO
2、F;wire[31:0]F;wire[31:0]M_R_Data;wire[31:0]PC;//InstantiatetheUnitUnderTest(UUT)TOP_RIJ_CPUuut(.rst(rst),.clk_100MHz(clk_100MHz),.clk(clk),.ZF(ZF),.OF(OF),.F(F),.M_R_Data(M_R_Data),.PC(PC));initialbegin//InitializeInputsrst=0;clk_100MHz=0;clk=0;//Wait100nsfor
3、globalresettofinish#100;//Addstimulushereforeverbegin#2;clk=~clk;#10;clk_100MHz=~clk_100MHz;endendendmodule顶层LED验证模块moduleTOP_LED(clk_100MHz,oclk,rst,SW,LED);inputclk_100MHz;inputoclk,rst;input[3:0]SW;outputreg[7:0]LED;wirerclk;wireZF,OF;wire[31:0]F;wire[31:0
4、]M_R_Data;wire[31:0]PC;xiaodoudoudong(clk_100MHz,oclk,rclk);TOP_RIJ_CPU(rst,clk_100MHz,rclk,ZF,OF,F,M_R_Data,PC);always@(*)begincase(SW)4'b0000:LED=F[7:0];4'b0001:LED=F[15:8];4'b0010:LED=F[23:16];4'b0011:LED=F[31:24];4'b0100:LED=M_R_Data[7:0];4'b0101:LED=M_R_
5、Data[15:8];4'b0110:LED=M_R_Data[23:16];4'b0111:LED=M_R_Data[31:24];4'b1000:beginLED[7:2]=0;LED[1]=OF;LED[0]=ZF;end4'b1100:LED=PC[7:0];4'b1101:LED=PC[15:8];4'b1110:LED=PC[23:16];4'b1111:LED=PC[31:24];default:LED=0;endcaseendendmodule顶层RIJ型指令CPU验证模块:moduleTOP_R
6、IJ_CPU(inputrst,inputclk_100MHz,inputclk,outputZF,outputOF,output[31:0]F,output[31:0]M_R_Data,output[31:0]PC);wireWrite_Reg;wire[31:0]Inst_code;wire[4:0]rs;wire[4:0]rt;wire[4:0]rd;wire[31:0]rs_data;wire[31:0]rt_data;wire[31:0]rd_data;wire[31:0]imm_data;//被扩展的
7、立即数wire[15:0]imm;//wirerd_rt_s;wire[1:0]w_r_s;wireimm_s;//判断是否需要扩展wirert_imm_s;//B端选择rt或者是扩展后的immwireMem_Write;//wirealu_mem_s;wire[1:0]wr_data_s;wire[31:0]W_Addr;wire[31:0]W_Data;wire[31:0]R_Data_A;wire[31:0]R_Data_B;wire[31:0]F;wire[31:0]ALU_B;//B端口数据wire[2
8、:0]ALU_OP;wire[1:0]PC_s;wire[31:0]PC_new;wire[31:0]PC;wire[25:0]address;pcpc_connect(clk,rst,PC_s,R_Data_A,imm_data,address,Inst_code,PC);OP_YIMAop(Inst_code,ALU_OP,rs,rt,rd,Write_Reg,imm