1 / 19
文档名称:

实验研究报告模板.docx

格式:docx   大小:477KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验研究报告模板.docx

上传人:luciferios04 2019/2/19 文件大小:477 KB

下载得到文件列表

实验研究报告模板.docx

相关文档

文档介绍

文档介绍:、熟悉Verilog语言的编写。2、掌握计算机的每个部件的构成逻辑及工作原理,计算机各部件之间的连接逻辑,计算机整机的工作原理。3、掌握CPU功能。4、设计55条单周期指令CPU下板成功2、.p( inputclock, inputresetn, output[2:0]r, output[2:0]g, output[1:0]b, outpuths, outputvs,);(input[31:0]a,input[31:0]b,input[3:0]aluc,output[31:0]r,outputzero,//零标志 outputcarry,//进位标志位 outputnegative,//负数标志位 outputoverflow//溢出标志位); wire[31:0]d_and=a&b;//0100 wire[31:0]d_or=a|b;//0101 wire[31:0]d_xor=a^b;//0110 wire[31:0]d_nor=~(a|b);//0111 wire[31:0]d_lui={b[15:0],16'h0};//100x wire[31:0]d_slt=a<b?1:0; wire[31:0]d_sltu=(a[31]&&~b[31])||(a[31]&&b[31]&&a>b)||(~a[31]&&~b[31]&&a<b); wire[31:0]d_and_or=aluc[0]?d_or:d_and; wire[31:0]d_xor_nor=aluc[0]?d_nor:d_xor; wire[31:0]d_and_or_xor_nor=aluc[1]?d_xor_nor:d_and_or; wire[31:0]d_slt_sltu=aluc[0]?d_slt:d_sltu; wire[31:0]d_lui_slt_sltu=aluc[1]?d_slt_sltu:d_lui; wire[31:0]d_as; wire[31:0]d_sh; wirecarry_as; wirenegative_as; wireoverflow_as; wirecarry_sh; addsub32as32(a,b,aluc[0],aluc[1],d_as,carry_as,overflow_as); shiftshifter(b,a[4:0],~aluc[1],~aluc[0],d_sh,carry_sh); mux4x32select_d(d_as,d_and_or_xor_nor,d_lui_slt_sltu,d_sh,aluc[3:2],r); mux4x1select_carry(carry_as,1'b0,1'b0,carry_sh,aluc[3:2],carry); mux4x1select_overflow(overflow_as,1'b0,1'b0,overflow_sh,aluc[3:2],overflow); assignzero=~|r; assignnegative=r[31];endmodule (input[4:0]raddr1,input[4:0]raddr2,input[31:0]wdata,input[4:0]waddr,inputwe,inputclk,inputrst,output[31:0]radata1,output[31:0]radata2); reg[31:0]register[0:31]; assignradata1=(raddr1==0)?0:register[raddr1]; assignradata2=(raddr2==0)?0:register[raddr2]; integeri; always@(posedgerstornegedgeclk)begin if(rst==1) begin for(i=1;i<32;i=i+1)begin register[i]<=0; end end elsebegin register[0]<=32'b0; if((waddr!=0)&&we)begin register[waddr]<=wdata; end end (inputclk,input[4:0]C0adr,input[31:0]C0Wdata,inputC0Write, input[31:0]InteCause, inputInterrupt, ept, output[31:0