资源描述:
《2019xx大学计算机原理 实验四 多周期MIPS CPU +存储器实验预习报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、湘潭大学计算机原理实验四多周期MIPSCPU+存储器实验预习报告 实验四多周期MIPSCPU+存储器实验 一.实验目的 1、深入理解MIPS—CPU指令系统的功能和工作原理;2、掌握多周期CPU的工作原理和逻辑功能实现; 3、熟练掌握用VerilogHDL语言设计多周期存储器的方法; 4、熟练掌握对多周期存储器的仿真实验验证和硬件测试两种调试方法;5、通过对多周期CPU的运行情况进行观察和分析,进一步加深理解。 二.实验设备 硬件:现代计算机组成原理实验系统Nios32位嵌入式系统实验开发平台EP1C12Q240 Corei3-3240CPU@的内存
2、软件:QuartusII MicrosoftWindowsxp 三.实验内容 1、设计一个32位MIPS多周期CPU具体的要求如下:至少运行下列的6类32条MIPS指令。算术逻辑指令and、sub、addi 逻辑运算指令and、0r、xor、andi、ori、xori位移指令sll、srl、sra条件分支指令beq、bne、无条件跳转指令j、jr数据传送指令lw、sw2.设计一个存储器 四.实验原理与步骤 实现上述原理框图根据功能将其分划分为控制单元(cunit)、执行单元(eunit)、指令单元(iunit)以及存储单元(munit
3、)四大模块。 .控制单元(cunit)是多周期微处理器的核心控制微处理器取指令、指令译码和指令执行等工作。主要指令译码器控制器(outputscontrol)、算术逻辑运算控制器(ALUcontrol)两个子模块组成。 .执行单元(eunit)主要寄存器堆(registers)和算术逻辑单元(ALU)两个子模块组成。其中寄存器是微处理器最基本的元素MIPS系统的寄存器堆32个32位寄存器组成而ALU则是微处理器的主要功能部件执行加、减、比较等算术运算和与、或、或非、异或等逻辑运算。指令单元(iunit)的作用是决定下一条指令的地址PC值。 .存储单元
4、(munit)存储器(memory)、指令寄存器(instructionregister)和存储数据寄存器(memorydataregister)组成。 五.实验源代码 寄存器元件代码: moduleregfile(rna,rnb,d,wn,we,clk,clrn,qa,qb);input[4:0]rna,rnb,wn;input[31:0]d;inputwe,clk,clrn;output[31:0]qa,qb;reg[31:0]register[1:31]; assign qa=(rna==0)0:register[rna]; assign qb=
5、(rnb==0)0:register[rnb]; always@(posedgeclkornegedgeclrn)beginif(clrn==0)begin integeri; for(i=1;ia[4:0]; 4'b1111:cal=$signed(b)>>>a[4:0];endcaseendfunctionendmodule 其他部件: modulef(reg_dest,jal,wn);input[4:0]reg_dest;input jal;output[4:0]wn;assignwn=reg_dest
6、{5{jal}};endmodule m
7、odulesa(di,dot);input[4:0]di;output[31:0]dot;assigndot={27'b0,di};endmodule moduleout4(out);output[31:0]out;assignout=32'h4;endmodule modulee(immin,sext,immediate,offset);input[15:0]immin;inputsext;output[31:0]immediate,offset;wire e=sext&immin[15];wire[15:0]imm={16{e}};assignoffset
8、={imm[13:0],immin[15:0],1'b0,1'b0};assignimmediate={imm,immin[15:0]};endmodule modulexxbine(address,pc,add);input[25:0]address;input[3:0]pc;output[31:0]add;assignadd={pc[3:0],address[25:0],1'b0,1'b0};endmodule moduleconvert1(dain,sain,op,func,rs,rt,rd,imm,addr);input[31:0]dain;outp