Files
vortex/hw/rtl/VX_gpr_ram.v
Blaise Tine 0a01385a2c few updates
2020-06-23 09:28:24 -07:00

32 lines
799 B
Verilog

`include "VX_define.vh"
module VX_gpr_ram (
input wire clk,
input wire reset,
input wire [4:0] waddr,
input wire [4:0] raddr1,
input wire [4:0] raddr2,
input wire [`NUM_THREADS-1:0] we,
input wire [`NUM_THREADS-1:0][31:0] wdata,
output reg [`NUM_THREADS-1:0][31:0] q1,
output reg [`NUM_THREADS-1:0][31:0] q2
);
reg [`NUM_THREADS-1:0][31:0] ram[31:0];
`UNUSED_VAR(reset)
genvar i;
for (i = 0; i < `NUM_THREADS; i++) begin
always @(posedge clk) begin
if (we[i]) begin
ram[waddr][i] <= wdata[i];
end
end
end
assign q1 = ram[raddr1];
assign q2 = ram[raddr2];
endmodule