Files
tatu/generated-ooo/PhysicalRegFile.sv
2026-06-27 03:38:34 +00:00

485 lines
14 KiB
Systemverilog

// Generated by CIRCT firtool-1.139.0
module PhysicalRegFile(
input clock,
reset,
input [5:0] io_raddr_0,
io_raddr_1,
io_raddr_2,
io_raddr_3,
output [63:0] io_rdata_0,
io_rdata_1,
io_rdata_2,
io_rdata_3,
input io_wen_0,
io_wen_1,
input [5:0] io_waddr_0,
io_waddr_1,
input [63:0] io_wdata_0,
io_wdata_1
);
reg [63:0] regs_0;
reg [63:0] regs_1;
reg [63:0] regs_2;
reg [63:0] regs_3;
reg [63:0] regs_4;
reg [63:0] regs_5;
reg [63:0] regs_6;
reg [63:0] regs_7;
reg [63:0] regs_8;
reg [63:0] regs_9;
reg [63:0] regs_10;
reg [63:0] regs_11;
reg [63:0] regs_12;
reg [63:0] regs_13;
reg [63:0] regs_14;
reg [63:0] regs_15;
reg [63:0] regs_16;
reg [63:0] regs_17;
reg [63:0] regs_18;
reg [63:0] regs_19;
reg [63:0] regs_20;
reg [63:0] regs_21;
reg [63:0] regs_22;
reg [63:0] regs_23;
reg [63:0] regs_24;
reg [63:0] regs_25;
reg [63:0] regs_26;
reg [63:0] regs_27;
reg [63:0] regs_28;
reg [63:0] regs_29;
reg [63:0] regs_30;
reg [63:0] regs_31;
reg [63:0] regs_32;
reg [63:0] regs_33;
reg [63:0] regs_34;
reg [63:0] regs_35;
reg [63:0] regs_36;
reg [63:0] regs_37;
reg [63:0] regs_38;
reg [63:0] regs_39;
reg [63:0] regs_40;
reg [63:0] regs_41;
reg [63:0] regs_42;
reg [63:0] regs_43;
reg [63:0] regs_44;
reg [63:0] regs_45;
reg [63:0] regs_46;
reg [63:0] regs_47;
reg [63:0] regs_48;
reg [63:0] regs_49;
reg [63:0] regs_50;
reg [63:0] regs_51;
reg [63:0] regs_52;
reg [63:0] regs_53;
reg [63:0] regs_54;
reg [63:0] regs_55;
reg [63:0] regs_56;
reg [63:0] regs_57;
reg [63:0] regs_58;
reg [63:0] regs_59;
reg [63:0] regs_60;
reg [63:0] regs_61;
reg [63:0] regs_62;
reg [63:0] regs_63;
wire [63:0][63:0] _GEN =
{{regs_63},
{regs_62},
{regs_61},
{regs_60},
{regs_59},
{regs_58},
{regs_57},
{regs_56},
{regs_55},
{regs_54},
{regs_53},
{regs_52},
{regs_51},
{regs_50},
{regs_49},
{regs_48},
{regs_47},
{regs_46},
{regs_45},
{regs_44},
{regs_43},
{regs_42},
{regs_41},
{regs_40},
{regs_39},
{regs_38},
{regs_37},
{regs_36},
{regs_35},
{regs_34},
{regs_33},
{regs_32},
{regs_31},
{regs_30},
{regs_29},
{regs_28},
{regs_27},
{regs_26},
{regs_25},
{regs_24},
{regs_23},
{regs_22},
{regs_21},
{regs_20},
{regs_19},
{regs_18},
{regs_17},
{regs_16},
{regs_15},
{regs_14},
{regs_13},
{regs_12},
{regs_11},
{regs_10},
{regs_9},
{regs_8},
{regs_7},
{regs_6},
{regs_5},
{regs_4},
{regs_3},
{regs_2},
{regs_1},
{regs_0}};
always @(posedge clock) begin
if (reset) begin
regs_0 <= 64'h0;
regs_1 <= 64'h0;
regs_2 <= 64'h0;
regs_3 <= 64'h0;
regs_4 <= 64'h0;
regs_5 <= 64'h0;
regs_6 <= 64'h0;
regs_7 <= 64'h0;
regs_8 <= 64'h0;
regs_9 <= 64'h0;
regs_10 <= 64'h0;
regs_11 <= 64'h0;
regs_12 <= 64'h0;
regs_13 <= 64'h0;
regs_14 <= 64'h0;
regs_15 <= 64'h0;
regs_16 <= 64'h0;
regs_17 <= 64'h0;
regs_18 <= 64'h0;
regs_19 <= 64'h0;
regs_20 <= 64'h0;
regs_21 <= 64'h0;
regs_22 <= 64'h0;
regs_23 <= 64'h0;
regs_24 <= 64'h0;
regs_25 <= 64'h0;
regs_26 <= 64'h0;
regs_27 <= 64'h0;
regs_28 <= 64'h0;
regs_29 <= 64'h0;
regs_30 <= 64'h0;
regs_31 <= 64'h0;
regs_32 <= 64'h0;
regs_33 <= 64'h0;
regs_34 <= 64'h0;
regs_35 <= 64'h0;
regs_36 <= 64'h0;
regs_37 <= 64'h0;
regs_38 <= 64'h0;
regs_39 <= 64'h0;
regs_40 <= 64'h0;
regs_41 <= 64'h0;
regs_42 <= 64'h0;
regs_43 <= 64'h0;
regs_44 <= 64'h0;
regs_45 <= 64'h0;
regs_46 <= 64'h0;
regs_47 <= 64'h0;
regs_48 <= 64'h0;
regs_49 <= 64'h0;
regs_50 <= 64'h0;
regs_51 <= 64'h0;
regs_52 <= 64'h0;
regs_53 <= 64'h0;
regs_54 <= 64'h0;
regs_55 <= 64'h0;
regs_56 <= 64'h0;
regs_57 <= 64'h0;
regs_58 <= 64'h0;
regs_59 <= 64'h0;
regs_60 <= 64'h0;
regs_61 <= 64'h0;
regs_62 <= 64'h0;
regs_63 <= 64'h0;
end
else begin
automatic logic _GEN_0;
automatic logic _GEN_1 = io_wen_1 & (|io_waddr_1);
_GEN_0 = io_wen_0 & (|io_waddr_0);
if (_GEN_1 & ~(|io_waddr_1))
regs_0 <= io_wdata_1;
else if (_GEN_0 & ~(|io_waddr_0))
regs_0 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1)
regs_1 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1)
regs_1 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2)
regs_2 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2)
regs_2 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h3)
regs_3 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h3)
regs_3 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h4)
regs_4 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h4)
regs_4 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h5)
regs_5 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h5)
regs_5 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h6)
regs_6 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h6)
regs_6 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h7)
regs_7 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h7)
regs_7 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h8)
regs_8 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h8)
regs_8 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h9)
regs_9 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h9)
regs_9 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'hA)
regs_10 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'hA)
regs_10 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'hB)
regs_11 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'hB)
regs_11 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'hC)
regs_12 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'hC)
regs_12 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'hD)
regs_13 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'hD)
regs_13 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'hE)
regs_14 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'hE)
regs_14 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'hF)
regs_15 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'hF)
regs_15 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h10)
regs_16 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h10)
regs_16 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h11)
regs_17 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h11)
regs_17 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h12)
regs_18 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h12)
regs_18 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h13)
regs_19 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h13)
regs_19 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h14)
regs_20 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h14)
regs_20 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h15)
regs_21 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h15)
regs_21 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h16)
regs_22 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h16)
regs_22 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h17)
regs_23 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h17)
regs_23 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h18)
regs_24 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h18)
regs_24 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h19)
regs_25 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h19)
regs_25 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1A)
regs_26 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1A)
regs_26 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1B)
regs_27 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1B)
regs_27 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1C)
regs_28 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1C)
regs_28 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1D)
regs_29 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1D)
regs_29 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1E)
regs_30 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1E)
regs_30 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h1F)
regs_31 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h1F)
regs_31 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h20)
regs_32 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h20)
regs_32 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h21)
regs_33 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h21)
regs_33 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h22)
regs_34 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h22)
regs_34 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h23)
regs_35 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h23)
regs_35 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h24)
regs_36 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h24)
regs_36 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h25)
regs_37 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h25)
regs_37 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h26)
regs_38 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h26)
regs_38 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h27)
regs_39 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h27)
regs_39 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h28)
regs_40 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h28)
regs_40 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h29)
regs_41 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h29)
regs_41 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2A)
regs_42 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2A)
regs_42 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2B)
regs_43 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2B)
regs_43 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2C)
regs_44 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2C)
regs_44 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2D)
regs_45 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2D)
regs_45 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2E)
regs_46 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2E)
regs_46 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h2F)
regs_47 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h2F)
regs_47 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h30)
regs_48 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h30)
regs_48 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h31)
regs_49 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h31)
regs_49 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h32)
regs_50 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h32)
regs_50 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h33)
regs_51 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h33)
regs_51 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h34)
regs_52 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h34)
regs_52 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h35)
regs_53 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h35)
regs_53 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h36)
regs_54 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h36)
regs_54 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h37)
regs_55 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h37)
regs_55 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h38)
regs_56 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h38)
regs_56 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h39)
regs_57 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h39)
regs_57 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h3A)
regs_58 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h3A)
regs_58 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h3B)
regs_59 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h3B)
regs_59 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h3C)
regs_60 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h3C)
regs_60 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h3D)
regs_61 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h3D)
regs_61 <= io_wdata_0;
if (_GEN_1 & io_waddr_1 == 6'h3E)
regs_62 <= io_wdata_1;
else if (_GEN_0 & io_waddr_0 == 6'h3E)
regs_62 <= io_wdata_0;
if (_GEN_1 & (&io_waddr_1))
regs_63 <= io_wdata_1;
else if (_GEN_0 & (&io_waddr_0))
regs_63 <= io_wdata_0;
end
end // always @(posedge)
assign io_rdata_0 = io_raddr_0 == 6'h0 ? 64'h0 : _GEN[io_raddr_0];
assign io_rdata_1 = io_raddr_1 == 6'h0 ? 64'h0 : _GEN[io_raddr_1];
assign io_rdata_2 = io_raddr_2 == 6'h0 ? 64'h0 : _GEN[io_raddr_2];
assign io_rdata_3 = io_raddr_3 == 6'h0 ? 64'h0 : _GEN[io_raddr_3];
endmodule