summaryrefslogtreecommitdiff
path: root/verilog/register/registers.v
blob: f2dbb2247335ff4cb3a8b54146f9c5fc1f323d95 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module registers(
	input wire writeEnable,
	input wire clk,
	input wire [31:0] addr1,
	input wire [31:0] addr2,
	input wire [31:0] addr3,
	input wire [31:0] writeData,
	output wire [31:0] readData1,
	output wire [31:0] readData2
);

reg [31:0] register [0:31];

always @ (posedge clk)
begin
	register[addr3] <= writeEnable ? writeData : register[addr3];
end

assign readData1 = register[addr1];
assign readData2 = register[addr2];

endmodule