📄 regfile.v
字号:
module regfile(clk,s1,s2,dest,out1,out2,data_in,r31_wr_en,reg_wr_en,pc_buf);input clk;input r31_wr_en;//link register writeinput reg_wr_en;input [4:0] s1;input [4:0] s2;input [4:0] dest;input [31:0] data_in;input [31:0] pc_buf;output [31:0] out1;output [31:0] out2;reg [31:0] out1; reg [31:0] out2;reg [31:0] r1,r2,r3,r31; always @(negedge clk)begin case(s1) 5'h0:out1<=32'h0000_0000; 5'h1:out1<=r1; 5'h2:out1<=r2; 5'h3:out1<=r3; /* 5'h4:out1<=r4; 5'h5:out1<=r5; 5'h6:out1<=r6; 5'h7:out1<=r7; */ 5'h1f:out1<=r31; default out1<=32'h0000_0000; endcaseendalways @(negedge clk)begin case(s2) 5'h0 :out2<=32'h0000_0000; 5'h1 :out2<=r1; 5'h2 :out2<=r2; 5'h3 :out2<=r3; /* 5'h4 :out2<=r4; 5'h5 :out2<=r5; 5'h6 :out2<=r6; 5'h7 :out2<=r7; */ 5'h1f:out2<=r31; default out2<=32'h0000_0000; endcaseendalways @(posedge clk)begin if(reg_wr_en)begin case(dest) //5'h0://r0<=32'h0000_0000; 5'h1:r1<=data_in; 5'h2:r2<=data_in; 5'h3:r3<=data_in; /* 5'h4:r4<=data_in; 5'h5:r5<=data_in; 5'h6:r6<=data_in; 5'h7:r7<=data_in; */ default r1<=r1; endcase end if(r31_wr_en)r31<=pc_buf; //R31 is link registerendendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -