19 lines
533 B
Verilog
19 lines
533 B
Verilog
module registers_bank (input clock, reset, we,
|
|
input [4:0] select_d, select_a, select_b,
|
|
input [31:0] input_d,
|
|
output [31:0] output_a, output_b);
|
|
|
|
reg [31:0] registers[31:0];
|
|
|
|
always @(posedge clock, reset) begin
|
|
if (reset == 1)
|
|
registers[0] <= 32'b0;
|
|
else if (we == 1)
|
|
registers[select_d] <= input_d;
|
|
end
|
|
|
|
assign output_a = registers[select_a];
|
|
assign output_b = registers[select_b];
|
|
|
|
endmodule
|