版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杭州电子科技大学计算机学院实验报告实验目的掌握MIPSR型指令的数据通路设计,掌握指令流和数据流的控制方法。掌握完整的单周期CPU顶层模块的设计方法实现MIPSR型指令的功能实验环境ISEDesignSuite14.6DigilentAdeptNexys3实验板实验内容(算法、程序、步骤和方法)本实验实现MIPS核心指令集的一个R型指令集,包含八条指令。将实现实验三的ALU模块,实验四实现的寄存器模块,实验七实现的指定储存器和取指令模块一起集成起来完成本实验。各个模块之间的关系图顶层模块:moduleTest_CPU(rst,clk,SW,LED);inputrst,clk; input[2:0]SW;//选择信号 outputreg[7:0]LED; wireZF,OF; wire[31:0]ALU_F; CPUr_cpu(rst,clk,ZF,OF,ALU_F); always@(*)begin case(SW) 3'b000:LED=ALU_F[7:0]; 3'b001:LED=ALU_F[15:8]; 3'b010:LED=ALU_F[23:16]; 3'b011:LED=ALU_F[31:24]; 3'b100:beginLED[7:2]=0;LED[1]=OF;LED[0]=ZF;end default:LED=0; endcase endendmodule综合ALU,取指令,寄存器模块的顶层模块moduleCPU(inputrst, inputclk, outputZF, outputOF, output[31:0]F); regwrite_reg;wire[31:0]Inst_code; wire[31:0]R_Data_A; wire[31:0]R_Data_B; reg[2:0]ALU_OP; Fetch_Instfetch(rst,clk,Inst_code); Registerfileregister(Inst_code[25:21],Inst_code[20:16],Inst_code[15:11],write_reg, F,~clk,rst,R_Data_A,R_Data_B); ALUalu(R_Data_A,R_Data_B,F,ALU_OP,ZF,OF); always@(*) begin write_reg=0; ALU_OP=0; if(Inst_code[31:26]==0) begin case(Inst_code[5:0]) 6'b100000:ALU_OP=3'b100; 6'b100010:ALU_OP=3'b101; 6'b100100:ALU_OP=3'b000; 6'b100101:ALU_OP=3'b001; 6'b100110:ALU_OP=3'b010; 6'b100111:ALU_OP=3'b011; 6'b101011:ALU_OP=3'b110; 6'b000100:ALU_OP=3'b111; endcase write_reg=1; end endendmoduleALU模块:moduleALU(A,B,F,ALU_OP,ZF,OF);input[31:0]A,B; input[2:0]ALU_OP; outputregZF,OF; outputreg[31:0]F; regC32; always@(*) begin OF=1'b0;C32=1'b0; case(ALU_OP) 3'b000:F=A&B; 3'b001:F=A|B; 3'b010:F=A^B; 3'b011:F=~(A|B); 3'b100:begin{C32,F}=A+B;OF=A[31]^B[31]^F[31]^C32;end 3'b101:begin{C32,F}=A-B;OF=A[31]^B[31]^F[31]^C32;end 3'b110: if(A<B) F=1; else F=0; 3'b111:F=B<<A; endcase if(F==0) ZF=1; else ZF=0; endendmodule实验四的寄存器模块:moduleRegisterfile(input[4:0]R_Addr_A,input[4:0]R_Addr_B, input[4:0]W_Addr, inputWrite_Reg, input[31:0]W_Data, inputClk, inputReset, output[31:0]R_Data_A, output[31:0]R_Data_B ); reg[31:0]REG_Files[0:31]; reg[5:0]i; initial begin for(i=0;i<=31;i=i+1) REG_Files[i]=0; end assignR_Data_A=REG_Files[R_Addr_A];assignR_Data_B=REG_Files[R_Addr_B]; always@(posedgeClkorposedgeReset) begin if(Reset) for(i=0;i<=31;i=i+1) REG_Files[i]=0; else if(Write_Reg&&W_Addr!=0) REG_Files[W_Addr]=W_Data; endendmodule实验七的取指令模块:moduleFetch_Inst(inputrst, inputclk, output[31:0]Inst_code);wire[31:0]PC_new; reg[31:0]PC; initial PC=32'h00000000; Inst_addrInst_mem(.clka(clk),.addra(PC[7:2]),.douta(Inst_code)); assignPC_new=PC+4; always@(posedgerstornegedgeclk) begin if(rst) PC=32'h00000000; else PC={24'h000000,PC_new[7:0]}; endendmodule(接上)实验内容(算法、程序、步骤和方法)管脚配置:NET"LED[0]"LOC=U16;NET"LED[1]"LOC=V16;NET"LED[2]"LOC=U15;NET"LED[3]"LOC=V15;NET"LED[4]"LOC=M11;NET"LED[5]"LOC=N11;NET"LED[6]"LOC=R11;NET"LED[7]"LOC=T1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球活塞连杆套件行业调研及趋势分析报告
- 家电维修合同协议书正规范本
- 垃圾桶项目采购合同
- 出租车租赁合同模板
- 2025居间合同协议书范本
- 产品全国总代理合同范本年
- 宣传栏制作安装合同书
- 委托合同范文年
- 2025年中图版八年级历史上册阶段测试试卷
- 2024年高考政治(安徽卷)真题详细解读及评析
- 数字经济学导论-全套课件
- 动物检疫技术-动物检疫的对象(动物防疫与检疫技术)
- 中考记叙文阅读
- 《计算机应用基础》-Excel-考试复习题库(含答案)
- 产科沟通模板
- 2023-2024学年四川省成都市小学数学一年级下册期末提升试题
- GB/T 7462-1994表面活性剂发泡力的测定改进Ross-Miles法
- GB/T 2934-2007联运通用平托盘主要尺寸及公差
- GB/T 21709.13-2013针灸技术操作规范第13部分:芒针
- 2022年青岛职业技术学院单招语文考试试题及答案解析
- 急诊科进修汇报课件
评论
0/150
提交评论