📄 regfile.v
字号:
module regfile(Q3,Q2,Q1,Q0,Dx,Dy,Rx,Ry,Rz,Dz,IN,clear_0,clk);
/*output Q2 Q0 Q5 Q10 只是测试用的*/
/*Dx Dy 是输出*/
/*IN 寄存器写入的控制信号*/
/*clear_0 控制写入部分的 与d_flp_32 相关*/
/*clk */
input[4:0] Rx,Ry,Rz;
input[31:0] Dz;
input IN,clk,clear_0;
output[31:0] Dx,Dy; /*输出结果*/
output[31:0] Q3,Q2,Q1,Q0; //测试专用
wire[31:0] Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17,Q18,Q19,Q20,Q21,Q22,Q23,Q24,Q25,Q26,Q27,Q28,Q29,Q30,Q31;
wire[31:0] Rx_out,Ry_out,Rz_out;
wire[31:0] clk_up;
wire enable_1;
wire CLK;
not n(CLK,clk);
//assign enable_1=1;
/*module decoder5_32(out,in);*/
decoder5_32 D_x(Rx_out[31:0],Rx[4:0]);/*5_to_32 只有一个选中 Rx_out*/
decoder5_32 D_y(Ry_out[31:0],Ry[4:0]);/*只有一个选中*/
decoder5_32 D_z(Rz_out[31:0],Rz[4:0]);
and A[31:0](clk_up[31:0],IN,Rz_out[31:0]);
/*?提供始终信号上升沿还是下降沿*/
/*
Rz_out[31:0]译码出的寄存器,IN 使能端 ,CLK
clk上升,CLK 下降,clk_up 下降
*/
/*三态门 控制输入 Rx_out 是高电平就通过,否则处于高阻态*/
/**/
bufif1
Bx0[31:0](Dx[31:0],Q0[31:0],Rx_out[0]),
Bx1[31:0](Dx[31:0],Q1[31:0],Rx_out[1]),
Bx2[31:0](Dx[31:0],Q2[31:0],Rx_out[2]),
Bx3[31:0](Dx[31:0],Q3[31:0],Rx_out[3]),
Bx4[31:0](Dx[31:0],Q4[31:0],Rx_out[4]),
Bx5[31:0](Dx[31:0],Q5[31:0],Rx_out[5]),
Bx6[31:0](Dx[31:0],Q6[31:0],Rx_out[6]),
Bx7[31:0](Dx[31:0],Q7[31:0],Rx_out[7]),
Bx8[31:0](Dx[31:0],Q8[31:0],Rx_out[8]),
Bx9[31:0](Dx[31:0],Q9[31:0],Rx_out[9]),
Bx10[31:0](Dx[31:0],Q10[31:0],Rx_out[10]),
Bx11[31:0](Dx[31:0],Q11[31:0],Rx_out[11]),
Bx12[31:0](Dx[31:0],Q12[31:0],Rx_out[12]),
Bx13[31:0](Dx[31:0],Q13[31:0],Rx_out[13]),
Bx14[31:0](Dx[31:0],Q14[31:0],Rx_out[14]),
Bx15[31:0](Dx[31:0],Q15[31:0],Rx_out[15]),
Bx16[31:0](Dx[31:0],Q16[31:0],Rx_out[16]),
Bx17[31:0](Dx[31:0],Q17[31:0],Rx_out[17]),
Bx18[31:0](Dx[31:0],Q18[31:0],Rx_out[18]),
Bx19[31:0](Dx[31:0],Q19[31:0],Rx_out[19]),
Bx20[31:0](Dx[31:0],Q20[31:0],Rx_out[20]),
Bx21[31:0](Dx[31:0],Q21[31:0],Rx_out[21]),
Bx22[31:0](Dx[31:0],Q22[31:0],Rx_out[22]),
Bx23[31:0](Dx[31:0],Q23[31:0],Rx_out[23]),
Bx24[31:0](Dx[31:0],Q24[31:0],Rx_out[24]),
Bx25[31:0](Dx[31:0],Q25[31:0],Rx_out[25]),
Bx26[31:0](Dx[31:0],Q26[31:0],Rx_out[26]),
Bx27[31:0](Dx[31:0],Q27[31:0],Rx_out[27]),
Bx28[31:0](Dx[31:0],Q28[31:0],Rx_out[28]),
Bx29[31:0](Dx[31:0],Q29[31:0],Rx_out[29]),
Bx30[31:0](Dx[31:0],Q30[31:0],Rx_out[30]),
Bx31[31:0](Dx[31:0],Q31[31:0],Rx_out[31]),
By0[31:0](Dy[31:0],Q0[31:0],Ry_out[0]),
By1[31:0](Dy[31:0],Q1[31:0],Ry_out[1]),
By2[31:0](Dy[31:0],Q2[31:0],Ry_out[2]),
By3[31:0](Dy[31:0],Q3[31:0],Ry_out[3]),
By4[31:0](Dy[31:0],Q4[31:0],Ry_out[4]),
By5[31:0](Dy[31:0],Q5[31:0],Ry_out[5]),
By6[31:0](Dy[31:0],Q6[31:0],Ry_out[6]),
By7[31:0](Dy[31:0],Q7[31:0],Ry_out[7]),
By8[31:0](Dy[31:0],Q8[31:0],Ry_out[8]),
By9[31:0](Dy[31:0],Q9[31:0],Ry_out[9]),
By10[31:0](Dy[31:0],Q10[31:0],Ry_out[10]),
By11[31:0](Dy[31:0],Q11[31:0],Ry_out[11]),
By12[31:0](Dy[31:0],Q12[31:0],Ry_out[12]),
By13[31:0](Dy[31:0],Q13[31:0],Ry_out[13]),
By14[31:0](Dy[31:0],Q14[31:0],Ry_out[14]),
By15[31:0](Dy[31:0],Q15[31:0],Ry_out[15]),
By16[31:0](Dy[31:0],Q16[31:0],Ry_out[16]),
By17[31:0](Dy[31:0],Q17[31:0],Ry_out[17]),
By18[31:0](Dy[31:0],Q18[31:0],Ry_out[18]),
By19[31:0](Dy[31:0],Q19[31:0],Ry_out[19]),
By20[31:0](Dy[31:0],Q20[31:0],Ry_out[20]),
By21[31:0](Dy[31:0],Q21[31:0],Ry_out[21]),
By22[31:0](Dy[31:0],Q22[31:0],Ry_out[22]),
By23[31:0](Dy[31:0],Q23[31:0],Ry_out[23]),
By24[31:0](Dy[31:0],Q24[31:0],Ry_out[24]),
By25[31:0](Dy[31:0],Q25[31:0],Ry_out[25]),
By26[31:0](Dy[31:0],Q26[31:0],Ry_out[26]),
By27[31:0](Dy[31:0],Q27[31:0],Ry_out[27]),
By28[31:0](Dy[31:0],Q28[31:0],Ry_out[28]),
By29[31:0](Dy[31:0],Q29[31:0],Ry_out[29]),
By30[31:0](Dy[31:0],Q30[31:0],Ry_out[30]),
By31[31:0](Dy[31:0],Q31[31:0],Ry_out[31]);
/*制造了32个寄存器
只有一个被选中写入
,实现的是下降沿写入?*/
d_flp_32 D0(Q0[31:0], Dz[31:0],CLK, clk_up[0],clear_0);
d_flp_32 D1(Q1[31:0], Dz[31:0],CLK, clk_up[1],clear_0);
d_flp_32 D2(Q2[31:0], Dz[31:0],CLK, clk_up[2],clear_0);
d_flp_32 D3(Q3[31:0], Dz[31:0],CLK, clk_up[3],clear_0);
d_flp_32 D4(Q4[31:0], Dz[31:0],CLK, clk_up[4],clear_0);
d_flp_32 D5(Q5[31:0], Dz[31:0],CLK, clk_up[5],clear_0);
d_flp_32 D6(Q6[31:0], Dz[31:0],CLK, clk_up[6],clear_0);
d_flp_32 D7(Q7[31:0], Dz[31:0],CLK, clk_up[7],clear_0);
d_flp_32 D8(Q8[31:0], Dz[31:0],CLK, clk_up[8],clear_0);
d_flp_32 D9(Q9[31:0], Dz[31:0],CLK, clk_up[9],clear_0);
d_flp_32 D10(Q10[31:0], Dz[31:0],CLK, clk_up[10],clear_0);
d_flp_32 D11(Q11[31:0], Dz[31:0],CLK, clk_up[11],clear_0);
d_flp_32 D12(Q12[31:0], Dz[31:0],CLK, clk_up[12],clear_0);
d_flp_32 D13(Q13[31:0], Dz[31:0],CLK, clk_up[13],clear_0);
d_flp_32 D14(Q14[31:0], Dz[31:0],CLK, clk_up[14],clear_0);
d_flp_32 D15(Q15[31:0], Dz[31:0],CLK, clk_up[15],clear_0);
d_flp_32 D16(Q16[31:0], Dz[31:0],CLK, clk_up[16],clear_0);
d_flp_32 D17(Q17[31:0], Dz[31:0],CLK, clk_up[17],clear_0);
d_flp_32 D18(Q18[31:0], Dz[31:0],CLK, clk_up[18],clear_0);
d_flp_32 D19(Q19[31:0], Dz[31:0],CLK, clk_up[19],clear_0);
d_flp_32 D20(Q20[31:0], Dz[31:0],CLK, clk_up[20],clear_0);
d_flp_32 D21(Q21[31:0], Dz[31:0],CLK, clk_up[21],clear_0);
d_flp_32 D22(Q22[31:0], Dz[31:0],CLK, clk_up[22],clear_0);
d_flp_32 D23(Q23[31:0], Dz[31:0],CLK, clk_up[23],clear_0);
d_flp_32 D24(Q24[31:0], Dz[31:0],CLK, clk_up[24],clear_0);
d_flp_32 D25(Q25[31:0], Dz[31:0],CLK, clk_up[25],clear_0);
d_flp_32 D26(Q26[31:0], Dz[31:0],CLK, clk_up[26],clear_0);
d_flp_32 D27(Q27[31:0], Dz[31:0],CLK, clk_up[27],clear_0);
d_flp_32 D28(Q28[31:0], Dz[31:0],CLK, clk_up[28],clear_0);
d_flp_32 D29(Q29[31:0], Dz[31:0],CLK, clk_up[29],clear_0);
d_flp_32 D30(Q30[31:0], Dz[31:0],CLK, clk_up[30],clear_0);
d_flp_32 D31(Q31[31:0], Dz[31:0],CLK, clk_up[31],clear_0);
endmodule
//d_flp_32
/*
module d_flp_32( Q,D,CLK, enable,RB ); //模块名及参数定义,范围至endmodule。
input enable,RB, CLK; //输入端口定义
input [31:0]D;
output[31:0]Q; //输出端口定义
reg [31:0]Q; //寄存器定义
always @( posedge CLK or negedge RB ) //如果CLK端有上跳或RB端有下跳脉冲,
//则执行下面(Q <= ( !RB )? 0: D;)的语句。
Q <= ( !RB )? 0: D; //如果RB是低电平,则Q=0,否则Q=D。
endmodule*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -